以下的文章主要是介绍的是SQL Server拆分字符串的3常用种方法,我前两天在相关网站看见SQL Server拆分字符串的3常用种方法的资料,觉得挺好,就拿出来供大家分享,望会给大家带来一些帮助在此方面。
usetempdb usetempdb go
测试数据
declare@svarchar(1000) set@s='ak47,mp5,1,23'
要求输出结果
S ak47 mp5 1 23
SQL Server拆分字符串的3种方法对比:
SQL Server拆分字符串1.[朴实]动态Exec方法:
declare@s1varchar(1000) set@s1=right(replace(','+@s,',','''asSunionselect'''),len(replace(','+@s,',','''asSunionselect'''))-12)+'''' exec(@s1)
SQL Server拆分字符串2.[变通]表交叉方法:
selectreplace(reverse((left(s,charindex(',',s)))),',','')asSfrom( selectr,reverse(left(@s,r))+','ass from( select(selectcount(*)fromsysobjectswherename<=t.name)asr fromsysobjectst )awherer<=len(@s) andleft(@s+',',r+1)like'%,' )torderbyr
SQL Server拆分字符串3.[高级]XML方法:
DECLARE@idocint; DECLARE@docxml; set@doc=cast('<Root><item><S>'+replace(@s,',','</S></item><item><S>')+'</S></item></Root>'asxml) EXECsp_xml_preparedocument@IdocOUTPUT,@doc SELECT*FROMOPENXML(@Idoc,'/Root/item',2) WITH( [S]varchar(10) )
以上的相关内容就是对SQL Server拆分字符串的三种方法的介绍,望你能有所收获。
【编辑推荐】
- SQL Server 2005 synonyms的优缺点有哪些?SQL Server快照功能以及其查询操作SQL Server行转列的什么情况下被用?SQL Server排序遇到NULL,不怕不帕!SQL Server 2005两种快照隔离机制的不同之处