SQLServer拆分字符串的三种方法

柯宇杨最帅k

柯宇杨最帅k

2016-02-19 16:03

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享SQLServer拆分字符串的三种方法吧。

  use tempdb

  go

  --测试数据

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

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

  /*要求输出结果

S
----
ak47
mp5
1
23
*/

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  --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('RootitemS'+replace(@s,',','/S/itemitemS')+'/S/item/Root' as xml)
EXEC sp_xml_preparedocument @Idoc OUTPUT, @doc
SELECT *  FROM OPENXML (@Idoc, '/Root/item',2)
  WITH (
      [S] varchar(10)
     )

展开更多 50%)
分享

猜你喜欢

SQLServer拆分字符串的三种方法

编程语言 网络编程
SQLServer拆分字符串的三种方法

sqlserver2008 拆分字符串

编程语言 网络编程
sqlserver2008 拆分字符串

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

字符串根据多个字符进行分割的一种方法

电脑网络
字符串根据多个字符进行分割的一种方法

c#中分割字符串的几种方法

编程语言 网络编程
c#中分割字符串的几种方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Java入门-关于字符串分割的两种方法

编程语言 网络编程
Java入门-关于字符串分割的两种方法

字符串分割

编程语言 网络编程
字符串分割

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

windows系统下打开dmg文件的方法

windows系统下打开dmg文件的方法

jquery插件jbox使用iframe关闭问题

jquery插件jbox使用iframe关闭问题
下拉加载更多内容 ↓