日期:2014-05-18  浏览次数:20739 次

大侠现身啊!!
我有一个表a,两个字段t_1,t_2,部分记录如下:
t_1         t_2
a             1010
b             1020
c             1030
d             1010;1020;1030

我想将现在这个表中的最后一条记录 "d         1010;1020;1030 "分成三条记录 "d       1010 ", "d         1020 ", "d         1030 ",该如何实现???
系统限制不能使用函数
谢谢

------解决方案--------------------
SELECT TOP 3000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns b

SELECT id1=identity(int,1,1),A.t_1,mingcheng=SUBSTRING(A.t_2,B.id,CHARINDEX( '; ',A.t_2+ '; ',B.id)-B.id)
FROM tablename A, # B
WHERE SUBSTRING( '; ' + A.mingcheng, B.id, 1) = '; '
------解决方案--------------------
liang213654() ( ) 信誉:100 2007-08-06 12:32:23 得分: 0


继续上面问题,就是在以上结果的基础上我如何按照t_2分类统计?例如:1010 2项,1020 2项,1030 2项
这个问题解决,即可结帖



---------------------
--測試
Select Top 100 ID = Identity(Int, 1, 1) Into #T From Syscolumns A, Syscolumns B

Select
t_2,
Count(t_2) As 项
From
(
Select
t_1,
t_2 = Substring(A.t_2, B.ID, CharIndex( '; ', A.t_2 + '; ', B.ID) - B.ID)
From A, #T B
Where Substring( '; ' + a.t_2, B.id, 1) = '; '
) A
Group By
t_2

Drop Table #T