求一个关于切割的sql语法

dqk1985 2014-02-24 01:58:08
有表
A B (这里是列名)
1 1,2,3
2 2,3,6


查询出来得到
A B
1 1
1 2
1 3
2 2
2 2
2 6
...全文
97 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2014-02-24
  • 打赏
  • 举报
回复
非2000还是2000?
LongRui888 2014-02-24
  • 打赏
  • 举报
回复
试试这个:

--drop table t

create table t(A int,B varchar(30))


insert into t
select 1     ,'1,2,3' union all
select 2     ,'2,3,6'
go

select A,
       SUBSTRING(t.B, number ,CHARINDEX(',',t.B+',',number)-number) B
from t,master..spt_values s
where s.number >=1
and s.type = 'P'
and SUBSTRING(','+t.B,s.number,1) = ','
/*
A	B
1	1
1	2
1	3
2	2
2	3
2	6
*/

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧