SQLServer 获取汉字拼音的首字母(大写)函数

1:创建函数:

USE [test]
GO
/****** 对象:  UserDefinedFunction [dbo].[GetFirstChar]    脚本日期: 02/22/2019 16:39:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--创建中文截取字符函数
ALTER FUNCTION [dbo].[GetFirstChar](@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',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'' 
)SpellingTable 
where ChineseCharacters > = @SingleCharacter COLLATE Chinese_PRC_CS_AS_KS_WS 
ORDER by PY ASC)
ELSE
SET @ReturnString = @ReturnString + @SingleCharacter
SET @ChineseString = RIGHT(@ChineseString,LEN(@ChineseString)-1) 
END
RETURN @ReturnString 
END

2:看结果:

谢欢的童鞋点个赞那~

原文地址:https://www.cnblogs.com/zgq7/p/10419319.html