资源描述:
《sql取汉字首字母的两个函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、go--创建取汉字首字母函数(第一版)create function [dbo].[f_getpy_V1] (@str nvarchar(4000))returns nvarchar(4000)asbegin declare @word nchar(1),@py nvarchar(4000) set @py='' while len(@str)>0 begin set @word=left(@str,1) set @py = @py+ (case when unicode
2、(@word) between 19968 and 19968+20901 then ( select top 1py from ( select 'a' as py, N'驁' as word union all select 'B',N'簿' union all select 'C',N'錯' union all select 'D',N'鵽' union all sel
3、ect 'E',N'樲' union all select 'F',N'鰒' union all select 'G',N'腂' union all select 'H',N'夻' union all select 'J',N'攈' union all select 'K',N'穒' union all select 'L',N'鱳' union all select 'M',N'旀' union all select 'N
4、',N'桛' union all select 'O',N'漚' union all select 'P',N'曝' union all select 'Q',N'囕' union all select 'R',N'鶸' union all select 'S',N'蜶' union all select 'T',N'籜' union all select 'W',N'鶩' union all select 'X',N'鑂'
5、 union all select 'Y',N'韻' union all select 'Z',N'咗' ) T where word>=@word collate Chinese_PRC_CS_AS_KS_WS order by py asc ) else @word end) set @str=right(@str,len(@str)-1) end return @PYend go--创建取汉字首
6、字母函数(第二版)create function [dbo].[f_getpy_V2](@Str varchar(500)='')returns varchar(500)asbegin declare @strlen int,@return varchar(500),@ii int declare @n int,@c char(1),@chn nchar(1) select @strlen=len(@str),@return='',@ii=0 set @ii=0 while @ii<@s
7、trlen begin select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1) if @chn>'z' select @n = @n +1 ,@c = case chn when @chn then char(@n) else @c end from( select top 27 * from ( select chn = '吖' union all select '八'
8、 union all select '嚓' union all select '咑' union all select '妸' union all select '发' union all select '旮' union all select '铪'