MS SQLServer函数:截取中文字符串的拼音首字母函数<自动生成中文字符的检索码(拼音码)>

`

-- =========================================================================
--     自定义函数:截取中文字符串的拼音首字母函数<自动生成中文字符的检索码(拼音码)>
-- Object:   UserDefinedFunction [dbo].[GetPYFirstChar]
-- Author:		<Steven Zhou>  --可编程性 -> 函数-> 标量值函数
-- Create date: <Create Date, ,>  ALTER date: 2019/11/28 15:19:42
-- Description:	<Description, ,>
-- =========================================================================

 --创建CREATE/修改ALTER截取中文字符串的拼音首字母函数
ALTER FUNCTION [dbo].[GetPYFirstChar](@ChineseString NVARCHAR(4000)) 
RETURNS NVARCHAR(4000) AS BEGIN
 
DECLARE @SingleCharacter NCHAR(1),
        @ReturnPYString NVARCHAR(4000) 
SET @ReturnPYString = '' 

WHILE LEN(@ChineseString)>0 
BEGIN

--依次取单个字符
SET @SingleCharacter = LEFT(@ChineseString,1) 

----汉字字符,返回字符对应首字母,非汉字字符,返回原字符
IF(UNICODE(@SingleCharacter) BETWEEN 19968 AND 19968+20901)
  SET @ReturnPYString = @ReturnPYString + 
  (SELECT TOP 1 ReturnPYString FROM
	 (SELECT             'A' AS  ReturnPYString, N'骜' AS SingleCharacter
		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 SingleCharacter > = @SingleCharacter COLLATE Chinese_PRC_CS_AS_KS_WS 
  ORDER by ReturnPYString ASC)
ELSE
	SET @ReturnPYString = @ReturnPYString + @SingleCharacter
	SET @ChineseString = RIGHT(@ChineseString,LEN(@ChineseString)-1) 
END
RETURN @ReturnPYString
END

  

`````

posted @ 2019-12-12 08:57  亟待!  阅读(308)  评论(0)    收藏  举报
……