一个返回汉字首字母的函数SQL Server

来源:互联网 发布:人工智能之父 图灵 编辑:程序博客网 时间:2024/05/22 06:39

该函数返回前三个汉字的首字母,可以根据情况改。

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_NetCh]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[f_NetCh]GOSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO/*函数  :  f_NetCh创建日期:2005-6-18主要功能:返回汉字的首字母(大写)如果非汉字字符,返回原字符 运行实例:select dbo.f_NetCh('赵亚平')结果:ZYP*/CREATE FUNCTION f_NetCh (@str nvarchar(4000) )RETURNS varchar(3)ASBEGIN  declare @word nchar(1),@PY nvarchar(4000)   set @PY=''   while len(@str)>0   begin     set @word=left(@str,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 @str=right(@str,len(@str)-1)   end   RETURN(@PY)ENDGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO


原创粉丝点击