SQL Server 拆分字符串方法详解

数据库中我们有可能要对字符串分解,特别是在对数据库做批量操作的时候,我们用一个字符串来代替了对数uk的富多次连接。分解字符串在C#里面很简单,可是在SQL里面就稍微有点复杂,不过想明白了还是比较简单的。希望下面的内容能帮到到您!

 

代码示例和解释

– 需要截取的字符串
declare @value varchar(max)
–截取完成以后得到的值
declare @temp varchar(max)
–记录分隔符的位置
declare @index int
–要截取的字符串,注意指定分隔符, 这里是用的是 ‘,’来分割的,
— 注意,这里最后多了一个 ‘,’如果没有的话,最后面的一组数据是截取不了的。
set @value=’aa,bb,cc22,3333,4444,’
–随便设置一个默认值
set @index=1
–使用循环来截取
while(1=1)
begin
— 在指定字符串中查找指定字符串的位置(索引是从1开始数的)。
–数据库帮助文档说,如果没有找到就返回0
set @index=charindex(‘,’,@value)
–如果返回0就表示没有找完了,就可以推出循环了。
if(@index =0) break
– temp 就是找出来的值,left 也就是在指定的字符串中从左边取指定的个数,
— 注意因为index 上面找出来的位置已经包含了’,’ 的位置,所以要减 1
set @temp = left(@value,@index-1)
– 重新设置源字符串, right 和left 反正在,在指定的字符串中从右边向左边截取。
–index 是从左边数的第一个 ‘,’ 的位置,所以我们用字符串的总长度减去index
–就是新的字符串,下一次循环就在这个新的值上面操作。
set @value = RIGHT(@value,LEN(@value)-@index)
–显示结果
print ‘temp: ‘+@temp
end
go

 

结果:

temp: aa
temp: bb
temp: cc22
temp: 3333
temp: 4444

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值