按汉字的首字母拼音搜索是时下一种流行的搜索方式,下面就将为您介绍如何使用SQL函数来实现这个功能,供您参考,希望对您能有所启迪。

由于时下的系统都有种流行的搜索方式,就是按汉字的首字母拼音搜索,下面就将为您介绍使用SQL函数来自动处理数据库中存储汉字得到首字母拼音的问题,供您参考,希望对您更好掌握SQL函数的使用有所帮助。

教您如何用SQL函数实现汉字得到首字母拼音(sql获取拼音首字母)  SQL 函数 拼音 第1张

代码如下:

create function fun_getPY(@str nvarchar(4000))
returns nvarchar(4000)
as
begin
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(@word) between 19968 and 19968+20901
then (select top 1 PY 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 select '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',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'鑂'
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 @PY
end

--函数调用实例:
select dbo.fun_getPY('中华人民共和国')
结果都为:ZHRMGHG 首字母的拼音

【编辑推荐】

基于时间SQL函数详解

SQL中表变量是否必须替代临时表

SQL中表变量的不足

SQL循环语句的妙用

SQL循环语句示例

转载请说明出处
知优网 » 教您如何用SQL函数实现汉字得到首字母拼音(sql获取拼音首字母)

发表评论

您需要后才能发表评论