SQL Server2005截取字符串并操作

xiaoxiao2021-03-01  52

以前看过别人写的,但是实在记不起来是怎么写的了,今天自己写了一个,在这里标记一下      --定义须查询的字串   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   --定义须查询的字串 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 相关资源:SQL截取字符串函数
转载请注明原文地址: https://www.6miu.com/read-4150096.html

最新回复(0)