`
touchinsert
  • 浏览: 1298967 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

SQLServer字符串批量拆分得方法

 
阅读更多

其实拆分和批量拆分的方法是一样的,所谓批量就是用out apply来调用单个拆分函数。

/*
SQLServer字符串拆分函数,by jinjazz

--原始数据
id names
----------- --------------------
1 jinjazz,blog,csdn
2 sql,ms

--生成的数据
id rn name
----------- ----------- ----------
1 1 jinjazz
1 2 blog
1 3 csdn
2 1 sql
2 2 ms


*/

setnocounton
usetempdb
go
if (object_id ('f_test' ) isnotnull )
dropfunctionf_test
go
createfunctionf_test (@avarchar (max ))
returns @ttable (rnint , vvarchar (max ))
as
begin
insertinto @t
select b. *from (
selectconvert (xml , '<v>' + replace (@a , ',' , '</v><v>' )+ '</v>' ) asf )a
outerapply
(
SELECTrn = row_number ()over (orderbygetdate ()),t . c . value ('.' , 'varchar(max)' ) ASf
FROMa . f . nodes ('//v' ) ASt (c )
)b
return
end
go


declare @ttable (idint , namesvarchar (20 ))
insertinto @tselect1 , 'jinjazz,blog,csdn'
insertinto @tselect2 , 'sql,ms'

select*from @t
selecta . id , rn , b. vasnamefrom @taouterapplydbo . f_test (a . names ) b

setnocountoff


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jinjazz/archive/2009/08/27/4490912.aspx

其实拆分和批量拆分的方法是一样的,所谓批量就是用out apply来调用单个拆分函数。

/*
SQLServer字符串拆分函数,by jinjazz

--原始数据
id names
----------- --------------------
1 jinjazz,blog,csdn
2 sql,ms

--生成的数据
id rn name
----------- ----------- ----------
1 1 jinjazz
1 2 blog
1 3 csdn
2 1 sql
2 2 ms


*/

setnocounton
usetempdb
go
if (object_id ('f_test' ) isnotnull )
dropfunctionf_test
go
createfunctionf_test (@avarchar (max ))
returns @ttable (rnint , vvarchar (max ))
as
begin
insertinto @t
select b. *from (
selectconvert (xml , '<v>' + replace (@a , ',' , '</v><v>' )+ '</v>' ) asf )a
outerapply
(
SELECTrn = row_number ()over (orderbygetdate ()),t . c . value ('.' , 'varchar(max)' ) ASf
FROMa . f . nodes ('//v' ) ASt (c )
)b
return
end
go


declare @ttable (idint , namesvarchar (20 ))
insertinto @tselect1 , 'jinjazz,blog,csdn'
insertinto @tselect2 , 'sql,ms'

select*from @t
selecta . id , rn , b. vasnamefrom @taouterapplydbo . f_test (a . names ) b

setnocountoff


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jinjazz/archive/2009/08/27/4490912.aspx

分享到:
评论

相关推荐

    SQLServer逗号分隔的字符串转换成表

    2. 利用 SQL Server 函数进行字符串拆分:可以使用 SQL Server 的字符串函数,例如 CHARINDEX、LEFT、RIGHT、LEN 等函数对字符串进行拆分。 3. 将拆分后的数据写入到临时表中:将拆分后的数据写入到第 1 步中创建的...

    SQLServer中的切割字符串SplitString函数

    有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了。没什么好说的,需要的朋友直接拿去用吧

    sqlserver中向表中插入多行数据的insert语句

    下面把在sql吧里一位高手的解决方法,公布下。供大家参考: 假设有个表有 学号、姓名、学校 这三列 然后向这个表中插入 040501 孙明 山东大学 ... 您可能感兴趣的文章:SqlServer下通过XML拆分字符串的方法sqlserve

    C#编程经验技巧宝典

    88 &lt;br&gt;0136 如何进行文本加密与解密 88 &lt;br&gt;0137 如何区别0、空字符串、Null、Empty和Nothing 89 &lt;br&gt;0138 从字符串中分离文件路径、文件名及扩展名 89 &lt;br&gt;0139 如何批量替换某一类字符串 89...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

Global site tag (gtag.js) - Google Analytics