取消操作

sql server 截取字符串中用某符号隔开的多个单词的首字母

前几天,有个朋友找到我,问我可不可以给他写一个方法,功能是:

 截取字符串中用某符号隔开的多个单词的首字母,如:

 将'ab c def g' 这个字符串截取为 acdg

我给出的方法如下

create function xy_frist(@str nvarchar(2000),@punctuation varchar(50)) 

returns nvarchar(2000)

 as 

begin    

 declare @midstr nvarchar(2000)     

SET @midstr = ''     

while (1=1)    

 begin       

 set @midstr = @midstr + SUBSTRING(@str,1,1)--取首字母        

--PRINT @midstr        

IF(CHARINDEX(@punctuation,@str)<1)--如果字符串中不包含 所要的  符号,则跳出循环        

BEGIN         BREAK        END       

 ELSE--如果包含,则截取 执行 符号 以后至末尾的字符串        

BEGIN         SET @str = SUBSTRING(@str, CHARINDEX(@punctuation,@str)+1,len(@str)- CHARINDEX(@punctuation,@str))         END    

 end    

 return @midstr end

--drop function xy_frist

--select dbo.xy_frist('ab c def g',' ')   --想要的结果是acdg

记录一下~

posted on 2013-05-20 15:42  取消操作  阅读(433)  评论(0编辑  收藏  举报

导航