mssql sqlserver 使用逗号分隔字符串转换为单独行的方法分享


摘要:
下文将借助spt_values表将逗号分隔的字符串转换为单独行显示的方法分享,如下所示:
实验环境:sql server 2008 R2


例:

  create table [maomao365.com](
info varchar(100))

insert into [maomao365.com]
(info)values('a,b,c,d,e,1,2,3,5'),
('maomao365,sql博客,sql技巧站')
/*
实现思路:
 采用spt_value表存在流水号的功能,
 通过charindex获取下一个分隔符的位置,
 通过substring得出分隔的单字符串信息,
 输出给用户
*/

select  info
,substring(info,b.number,
    charindex(',',info+',',b.number)-b.number) as newInfo 
from [maomao365.com]     a(nolock),
      master..spt_values b(nolock) 
where b.number>=1 and b.number <len(a.info) and b.type='P'
and substring(','+info,b.number,1)=','

go
truncate table [maomao365.com]
drop     table [maomao365.com]
mssql_sqlserver_字符串分隔

mssql_sqlserver_字符串分隔