【发布时间】:2011-10-02 11:56:25
【问题描述】:
我有一个小要求
我有一些数据如下
Data
-----
A,B,C
I,J,K
A,D
DDL 如下
Declare @t (Data varchar(50))
Insert into @t Select 'A,B,C' Union all Select 'I,J,K' union all Select 'A,D'
Select * from @t
我要做的是(输出)
Parent Child
------- -------
Null A
Null I
A B
A C
I J
J K
A D
到目前为止,我的方法如下但不起作用
;With cte as (
SSELECT Parent = null, Child = substring(data, 1, CHARINDEX(',',data)-1)
FROM @t
Union all
SELECT t.child, substring(t.data, CHARINDEX(',',t.data)+1, LEN(t.data))
FROM @t t
JOIN cte c ON c.child <> t.child )
Select * from cte
【问题讨论】:
标签: sql sql-server-2005 tsql common-table-expression