逗号将字符串分成两列

时间:2014-02-12 02:55:59

标签: sql sql-server

我需要一个逗号分隔字符串的解决方案。我有一个函数,它返回一列的行列表

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
.....

1 个答案:

答案 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