SQL SERVER 获取汉字的首拼音字母的函数

USE [CTMS_TEST]
GO
/****** Object:  UserDefinedFunction [dbo].[fun_getPY]    Script Date: 07/19/2012 14:58:17 ******/
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 @PY   end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值