将行值拆分为列?

时间:2019-04-12 18:31:22

标签: sql sql-server sqlite tsql tsqlt

输入表

Id 
1,2,3
6,8,1,2,5
4,9,2,1
6,7,8

我需要这样的输出

Id1 id2 id3 id4   id5
1    2   3  Null  Null
6    8   1   2    5
4    9   2   1    Null
6    7   8  Null  Null

1 个答案:

答案 0 :(得分:2)

如果您无法按照Gordon的建议重新导入,请尝试以下操作:

Select A.ID
      ,B.*
 From  YourTable A
 Cross Apply (
                Select Pos1  = xDim.value('/x[1]','int')
                      ,Pos2  = xDim.value('/x[2]','int')
                      ,Pos3  = xDim.value('/x[3]','int')
                      ,Pos4  = xDim.value('/x[4]','int')
                      ,Pos5  = xDim.value('/x[5]','int')
                From  (Select Cast('<x>' + replace([Id],',','</x><x>')+'</x>' as xml) as xDim) as A 
             ) B

返回

enter image description here

相关问题