1:创建函数:
USE [test] GO /****** 对象: UserDefinedFunction [dbo].[GetFirstChar] 脚本日期: 02/22/2019 16:39:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --创建中文截取字符函数 ALTER FUNCTION [dbo].[GetFirstChar](@ChineseString NVARCHAR(4000)) RETURNS NVARCHAR(4000) AS BEGIN DECLARE @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 + @SingleCharacter SET @ChineseString = RIGHT(@ChineseString,LEN(@ChineseString)-1) END RETURN @ReturnString END
2:看结果:
谢欢的童鞋点个赞那~