SQL Server 字段提取拼音首字母
时间:2021-07-01 10:21:17
帮助过:4人阅读
生成拼音首码
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 需转换中文字段, dbo.fn_GetPy(中文字段) AS 列别名
FROM 表名称
感谢:Luckeryin
SQL Server 字段提取拼音首字母
标签: