我需要一个逗号分隔字符串的解决方案。我有一个函数,它返回一列的行列表
declare @datap varchar(200)
set @datap = 'KIA,A,TEST1,I,KIA2,A,KIA2,A,KIA3,I'
select * from dbo.fs_1_fn_split(@datap, ',')
它以这种形式或者在第2列中显示的名为值的一列中提供
id value
1 KOA
2 A
3 TEST1
4 I
5 KIA2
6 A
7 KIA2
8 A
9 KIA3
10 I
我需要将其转换为两列
KOA A
TEST1 I
KIA2 A
.....
答案 0 :(得分:4)
您可以在拆分值后聚合结果来执行此操作。这是一种方法:
select max(case when id % 2 = 1 then value end) as value1,
max(case when id % 2 = 0 then value end) as value2
from (select id, value, (id-1)/2 as grp
from dbo.fs_1_fn_split(@datap, ',')
) t
group by grp