使用下方的函数..
忘了从哪抄的了..留存一份
如果只要首字母..建议将数据 Left(tableFiled,1) 后传入函数
如果字段是空或者null, 不会报错..返回空
方法体:
SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE FUNCTION [dbo].[F_SYS_getPY](@str NVARCHAR(4000))RETURNS NVARCHAR(4000)ASBEGINDECLARE @word NCHAR(1),@PY NVARCHAR(4000)SET @PY=''WHILE LEN(@str)>0BEGINSET @word=LEFT(@str,1)SET @PY=@PY+(CASE WHEN UNICODE(@word) BETWEEN 19968 AND 19968+20901THEN (SELECT TOP 1 PY FROM (SELECT 'A' AS PY,N'驁' AS wordUNION 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'咗') TWHERE word>=@word COLLATE Chinese_PRC_CS_AS_KS_WSORDER BY PY ASC) ELSE @word END)SET @str=RIGHT(@str,LEN(@str)-1)ENDRETURN @PYEND GO