前几天,有个朋友找到我,问我可不可以给他写一个方法,功能是:
截取字符串中用某符号隔开的多个单词的首字母,如:
将'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
记录一下~