Разделить строку на разные столбцы SQL Server

#sql-server

#sql-server

Вопрос:

У меня есть строка в таблице, которую мне нужно разделить на разные столбцы, это моя строка;

 "VEX_NAME=LILIAN BRIGHT||VEX_ID=3006030"
  

Я хотел бы быть разделен в формате ниже

   VEX_ID  |  VEX_NAME
  -------- ----------------
  3006030 | LILIAN BRIGHT
  

Комментарии:

1. Какую версию SQL Server вы используете — это будет иметь отношение к этому ответу

2. Sql server 2012

Ответ №1:

Вы можете использовать substring() amp; charindex() :

 select substring(col, charindex('VEX_ID=', col)   7, len(col)) as VEX_ID,
       substring(col, charindex('VEX_NAME=', col)   9, 
                 charindex('||', col) - (charindex('VEX_NAME=', col)   9 )) as VEX_NAME
from table t;
  

Однако вы также можете использовать APPLY :

 select substring(col, VEX_ID, len(col)) as VEX_ID,
       substring(col, VEX_NAME, pipe - VEX_NAME) as VEX_NAME
from table t cross apply 
    ( values (charindex('VEX_ID=', col)   7, charindex('VEX_NAME=', col)   9,  charindex('||', col))
    ) tt(VEX_ID, VEX_NAME, pipe);