sql server自动生成拼音首字母的函数 |
本文标签:自动生成,拼音首字母 建立一个查询,执行下面的语句生成函数fn_GetPy 复制代码 代码如下: --生成拼音首码 CREATE function fn_GetPy(@str nvarchar(4000)) returns nvarchar(4000) --WITH ENCRYPTION as begin declare @intLen int declare @strRet nvarchar(4000) declare @temp nvarchar(100) set @intLen = len(@str) set @strRet = while @intLen > 0 begin set @temp = select @temp = case when substring(@str,@intLen,1) >= 帀 then Z when substring(@str,@intLen,1) >= 丫 then Y when substring(@str,@intLen,1) >= 夕 then X when substring(@str,@intLen,1) >= 屲 then W when substring(@str,@intLen,1) >= 他 then T when substring(@str,@intLen,1) >= 仨 then S when substring(@str,@intLen,1) >= 呥 then R when substring(@str,@intLen,1) >= 七 then Q when substring(@str,@intLen,1) >= 妑 then P when substring(@str,@intLen,1) >= 噢 then O when substring(@str,@intLen,1) >= 拏 then N when substring(@str,@intLen,1) >= 嘸 then M when substring(@str,@intLen,1) >= 垃 then L when substring(@str,@intLen,1) >= 咔 then K when substring(@str,@intLen,1) >= 丌 then J when substring(@str,@intLen,1) >= 铪 then H when substring(@str,@intLen,1) >= 旮 then G when substring(@str,@intLen,1) >= 发 then F when substring(@str,@intLen,1) >= 妸 then E when substring(@str,@intLen,1) >= 咑 then D when substring(@str,@intLen,1) >= 嚓 then C when substring(@str,@intLen,1) >= 八 then B when substring(@str,@intLen,1) >= 吖 then A else rtrim(ltrim(substring(@str,@intLen,1))) end --对于汉字特殊字符,不生成拼音码 if (ascii(@temp)>127) set @temp = --对于英文中小括号,不生成拼音码 if @temp = ( or @temp = ) set @temp = select @strRet = @temp + @strRet set @intLen = @intLen - 1 end return lower(@strRet) end 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 测试: SELECT Product_ID , dbo.fn_GetPy(Product_Name) AS pymc FROM dbo.T_Product |