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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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

执行

posted @   张岂逢  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示