sqlserver 快速生成汉字的首拼字母的函数(经典)

2022-05-24 0 1,091

代码如下:


复制代码 代码如下:

USE [tempdb]

GO

/****** Object: UserDefinedFunction [dbo].[fun_getPY] Script Date: 05/23/2012 18:03:45 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

/*

获取汉字的首拼音

如果是非汉字字符

*/

ALTER function [dbo].[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 upper(@PY)

end

调用如下:


复制代码 代码如下:

select dbo.[fun_getPY](‘中国人’) 首拼

结果:

ZGR

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 MsSql sqlserver 快速生成汉字的首拼字母的函数(经典) https://www.niceym.com/60564.html