CREATE FUNCTION GetInitialLetter(@ChineseString NVARCHAR(4000))
RETURNS NVARCHAR(4000)
AS
BEGINDECLARE @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 + @SingleCharacterSET @ChineseString = RIGHT(@ChineseString,LEN(@ChineseString)-1) ENDRETURN @ReturnString END
GO