Как разбить столбец базы на подчеркивание - PullRequest
0 голосов
/ 23 апреля 2019
****Original          Column    After separated****
CustomerID  CustomerID1 CustomerID2 CustomerID3 CustomerID4
1_2_R_0           1             2           R      0
3_3_0             3             3           0    
4_2               4             2

Идентификатор клиента - это исходный столбец, который необходимо разбить на несколько столбцов на подчеркивании до customerID1 , customerID2 , customerID3 и customerID4 .

enter image description here

1 Ответ

2 голосов
/ 23 апреля 2019

Поскольку максимум 4 идентификатора, вы можете использовать parsename ().Однако я бы выбрал подход XML.

Пример

Select A.CustomerID
      ,B.*
 From  YourTable A
 Cross Apply (
    Select CustomerID1 = xDim.value('/x[1]','varchar(100)')
          ,CustomerID2 = xDim.value('/x[2]','varchar(100)')
          ,CustomerID3 = xDim.value('/x[3]','varchar(100)')
          ,CustomerID4 = xDim.value('/x[4]','varchar(100)')
     From  (values (cast('<x>' + replace([CustomerID],'_','</x><x>')+'</x>' as xml))) X(xDim)
 ) B 

Возвращает

enter image description here

...