数据库中文字转拼音首拼——标量函数

本文介绍了一个SQL Server自定义函数,用于将输入的中文字符串转换为对应的拼音首字母缩写。该函数通过逐字符判断并替换为预设的拼音首字母,支持处理包括汉字在内的多种字符类型。

直接上Sql,不用修改执行就可以使用; 

CREATE FUNCTION [dbo].[fn_GetPy] (@str nvarchar(4000)) returns nvarchar (4000) --WITH ENCRYPTION

AS

BEGIN

	DECLARE

		@intLen INT DECLARE

			@strRet nvarchar (4000) DECLARE

				@temp nvarchar (100)

			SET @intLen = len(@str)

			SET @strRet = ''

			WHILE @intLen > 0

			BEGIN

 

			SET @temp = '' SELECT

				@temp = CASE

			WHEN SUBSTRING (@str ,@intLen, 1) >= '帀' THEN

				'Z'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '丫' THEN

				'Y'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '夕' THEN

				'X'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '屲' THEN

				'W'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '他' THEN

				'T'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '仨' THEN

				'S'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '呥' THEN

				'R'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '七' THEN

				'Q'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '妑' THEN

				'P'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '噢' THEN

				'O'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '拏' THEN

				'N'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '嘸' THEN

				'M'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '垃' THEN

				'L'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '咔' THEN

				'K'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '丌' THEN

				'J'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '铪' THEN

				'H'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '旮' THEN

				'G'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '发' THEN

				'F'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '妸' THEN

				'E'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '咑' THEN

				'D'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '嚓' THEN

				'C'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '八' THEN

				'B'

			WHEN SUBSTRING (@str ,@intLen, 1) >= '吖' THEN

				'A'

			ELSE

				rtrim(

					ltrim(SUBSTRING(@str ,@intLen, 1))

				)

			END --对于汉字特殊字符,不生成拼音码

			IF (ascii(@temp) > 127)

			SET @temp = '' --对于英文中小括号,不生成拼音码

			IF @temp = '('

			OR @temp = ')'

			SET @temp = '' SELECT

				@strRet = @temp + @strRet

			SET @intLen = @intLen - 1

			END RETURN upper(@strRet)

			END

使用:

SELECT dbo.fn_GetPy('这是个标量函数')

 结果:

编程如此简单~~~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值