【发布时间】:2011-06-20 06:06:45
【问题描述】:
我有下面的输入表
Input
ID Row Data
1 1 a2b
1 2 p1d1
2 1 abcd
预期输出
ID RowCol Chars
1 a1 a
1 b1 X
1 c1 X
1 d1 b
1 a2 p
1 b2 X
1 c2 d
1 d2 X
2 a1 a
2 b1 b
2 c1 c
2 d1 d
数据列中的每个数字都将被视为多个 X。因此,如果扩展第一个资源,即“a2b” 它变成aXXB。也就是说长度为 4。在列中表示它将是 a、b、c 和 d。 而且由于它在第一行,因此,输出将是
ID RowCol Chars
1 a1 a
1 b1 X
1 c1 X
1 d1 b
ddl如下
Declare @t table(ID int , Row int, Data varchar(10))
Insert into @t
Select 1, 1,'a2b' Union All Select 1,2,'p1d1' Union All Select 2,1,'abcd'
寻找基于 cte 的解决方案。
提前致谢
【问题讨论】:
-
你已经问过同样的问题了。
-
你应该试试我的代码的新版本,我花了很多时间。它有效,但是我正在考虑明天的改进。
标签: sql-server sql-server-2005 tsql common-table-expression