ALTER FUNCTION getPinYin(@HZ NVARCHAR(4000))
RETURNS NVARCHAR(4000)
AS
BEGIN
DECLARE @word NCHAR(1)
DECLARE @PY NVARCHAR(4000)
SET @PY = ''
WHILE LEN(@HZ) > 0
  BEGIN
   SET @word = LEFT(@HZ,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 @HZ = RIGHT(@HZ,LEN(@HZ)-1)
  END
  RETURN @PY
END

 

相关文章:

  • 2022-12-23
  • 2021-09-21
  • 2021-11-14
  • 2021-10-25
  • 2022-12-23
  • 2021-04-30
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-20
  • 2021-12-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案