SQLServer拆分字符串的三种方法_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

SQLServer拆分字符串的三种方法

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:方法字符串select
黑客防线网安网讯:  use tempdb  go  --测试数据declare @s varchar(1000)set @s='ak47,mp5,1,23'  /*要求输出结果S----ak47mp5123*/  --3种方法对比:  --1.[朴实]动态Exec方法:declare ...

  use tempdb

  go

  --测试数据

declare @s varchar(1000)
set @s='ak47,mp5,1,23'

  /*要求输出结果

S
----
ak47
mp5
1
23
*/

  --3种方法对比:

  --1.[朴实]动态Exec方法:

declare @s1 varchar(1000)
set @s1=right(replace(','+@s,',',''' as S union select '''),len(replace(','+@s,',',''' as S union select '''))-12)+''''
exec(@s1)

  --2.[变通]表交叉方法:

select replace(reverse((left(s,charindex(',',s)))),',','') as S from(
select r,reverse(left(@s,r))+',' as s
from(
select  (select count(*) from sysobjects where name<=t.name ) as r
from sysobjects t 
 )a where r<=len(@s)
and left(@s+',',r+1) like '%,'
)t order by r

  --3.[高级]XML方法:

DECLARE @idoc int;
DECLARE @doc xml;
set @doc=cast('<Root><item><S>'+replace(@s,',','</S></item><item><S>')+'</S></item></Root>' as xml)
EXEC sp_xml_preparedocument @Idoc OUTPUT, @doc
SELECT *  FROM OPENXML (@Idoc, '/Root/item',2)
  WITH (
      [S] varchar(10)
     )

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-9745-1.html
网站维护教程更新时间:2012-03-21 02:24:41  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer