频道栏目
首页 > 资讯 > 数据库 > 正文

SQLServer拆分字符串的三种方法

10-06-06        来源:[db:作者]  
收藏   我要投稿
  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)
  )
相关TAG标签
上一篇:SQLServer辅导:SQLLDR的使用方法
下一篇:删除注册、连接失败的sqlserver服务器
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站