SQL Server2005截取字符串并操作

以前看过别人写的,但是实在记不起来是怎么写的了,今天自己写了一个,在这里标记一下
Sql代码 复制代码
  1. --定义须查询的字串   
  2. declare @queryString nvarchar(1000)   
  3. --定义循环内截取出来的子字符串,如有字符串'abc,123,中国,',循环内第一次截取@temp='abd',第二次@temp='123',第三次@temp='中国'   
  4. declare @temp varchar(32)   
  5. --定义分隔符','的位置   
  6. declare @pos int  
  7. --定义截取出来的子字符串的长度   
  8. declare @len int  
  9. set @queryString='abc,123,中国,'  
  10. --Charindex(分隔符,被查询的字符串,查询起始位置),这里是取分隔符','出现的位置   
  11. set @pos=Charindex(',',@queryString,0)   
  12.   
  13. while(@pos>0)   
  14. begin  
  15.     --Substring(被查询的字符串,起始位置,截止位置),根据分隔符的位置截取字符串   
  16.     set @temp=Substring(@queryString,0,@pos)   
  17.     --len(子字符串),取得子字符串的长度   
  18.     set @len=len(@temp)   
  19.     --下面只是把分隔符之间的字符串依次输出,可替换成你自己的操作   
  20.     select @temp  
  21.     --Stuff(被查询的字符串,起始位置,截止位置),把子字符串从被查询的字符串中去除,第一次循环时把'abc,'从'abc,123,中国,'去除,这时queryString就是'123,中国,'了   
  22.     set @queryString=Stuff(@queryString,1,@len+1,'')   
  23.     --下面是控制循环的条件   
  24.     set @pos=Charindex(',',@queryString,0)   
  25. end  
--定义须查询的字串
declare @queryString nvarchar(1000)
--定义循环内截取出来的子字符串,如有字符串'abc,123,中国,',循环内第一次截取@temp='abd',第二次@temp='123',第三次@temp='中国'
declare @temp varchar(32)
--定义分隔符','的位置
declare @pos int
--定义截取出来的子字符串的长度
declare @len int
set @queryString='abc,123,中国,'
--Charindex(分隔符,被查询的字符串,查询起始位置),这里是取分隔符','出现的位置
set @pos=Charindex(',',@queryString,0)

while(@pos>0)
begin
	--Substring(被查询的字符串,起始位置,截止位置),根据分隔符的位置截取字符串
	set @temp=Substring(@queryString,0,@pos)
	--len(子字符串),取得子字符串的长度
	set @len=len(@temp)
	--下面只是把分隔符之间的字符串依次输出,可替换成你自己的操作
	select @temp
	--Stuff(被查询的字符串,起始位置,截止位置),把子字符串从被查询的字符串中去除,第一次循环时把'abc,'从'abc,123,中国,'去除,这时queryString就是'123,中国,'了
	set @queryString=Stuff(@queryString,1,@len+1,'')
	--下面是控制循环的条件
	set @pos=Charindex(',',@queryString,0)
end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值