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

SQL一个字段以分格符分成N行怎么写
一个表
1 keven a,b,c
2 nike a,b
3 mical b
我要查询成这样
keven a
keven b
keven c
nike a
nike b
mical b
这个怎么写

sql2008有人给出答案,我在2000前提下


------解决方案--------------------
SQL code
有表tb, 如下:
id value
----------- -----------
1 aa,bb
2 aaa,bbb,ccc
欲按id,分拆value列, 分拆后结果如下:
id value
----------- --------
1 aa
1 bb
2 aaa
2 bbb
2 ccc

2000的解决方法
SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns b  

SELECT A.id, SUBSTRING(A.[values], B.id, CHARINDEX(',', A.[values] + ',', B.id) - B.id)
FROM tb A, # B
WHERE SUBSTRING(',' + A.[values], B.id, 1) = ','

DROP TABLE #