取消操作

sql server 字符串中包含多个某符号,截取至第n个特殊符号之前

也不知道我的朋友怎么又这么多奇怪的需求

他的新要求是:若某个字符串里,包含多个某符号或者字符,截取这个字符串的第n个特殊符号之前的字符

代码如下

 create function szg_substr(@str varchar(1000),@punctuation char(1),@wantindex int)
 returns varchar(1000)
 as
 begin
     declare @resultstr varchar(1000)
     set @resultstr = @str
     declare @count int,  ---定义变量   记录循环次数
              @index int   ---定义变量   记录分号所在的下标的位置
     set @count=0   ---为变量赋初值
     set @index=0    ---为变量赋初值
     while (@count<@wantindex)
     begin
        set @count=@count+1    ---循环次数加1
        set  @index = @index + convert(int, CHARINDEX(@punctuation,@str))   ---记录下标(累加)
        set @str = SUBSTRING(@str, CHARINDEX(@punctuation,@str)+1,len(@str)- CHARINDEX(@punctuation,@str))   --每找到一个分号,就将字符串从 分号截取,留后半部分
     end
     set @resultstr=SUBSTRING(@resultstr,0, @index)
     return @resultstr
 end

嗯,他说还是很好用的。我很欣慰~

posted on 2013-05-27 17:11  取消操作  阅读(1161)  评论(0编辑  收藏  举报

导航