SqlServer 获取汉字的拼音首字母

本文介绍了在SQL Server中如何实现获取汉字字符串每个字符的首字母,对于非汉字字符则保持原样。函数利用了汉字的UNICODE值和排序规则,举例展示了调用函数`dbo.GetInitialLetter('加油2018')`返回'JY2018'的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、该函数传入字符串,返回数据为:如果为汉字字符,返回该字符的首字母,如果为非汉字字符,则返回本身。
二、用到的知识点:汉字对应的UNICODE值,汉字的排序规则。
三、数据库函数:

CREATE FUNCTION GetInitialLetter(@ChineseString NVARCHAR(4000)) 
RETURNS NVARCHAR(4000) 
AS
BEGIN
 
DECLARE @SingleCharacter NCHAR(1),
@ReturnString NVARCHAR(4000) 
SET @ReturnString = '' 

WHILE LEN(@ChineseString)>0 
BEGIN

--依次取单个字符
SET @SingleCharacter = LEFT(@ChineseString,1) 

----汉字字符,返回字符对应首字母,非汉字字符,返回原字符
IF(UNICODE(@SingleCharacter) BETWEEN 19968 AND 19968+20901)
SET @ReturnString = @ReturnString + 
(SELECT TOP 1 PY FROM
(SELECT 'A' AS PY,N'骜' AS ChineseCharacters 
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值