| 您的当前位置:首页 --> MSSQL教程 |
| sqlserver 快速生成汉字的首拼字母的函数(经典) |
| 浏览次数:889 关键词 ( ) |
|
代码如下: 复制代码 代码如下: USE [tempdb] GO /****** Object: UserDefinedFunction [dbo].[fun_getPY] Script Date: 05/23/2012 18:03:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* 获取汉字的首拼音 如果是非汉字字符 */ ALTER function [dbo].[fun_getPY] ( @str nvarchar(4000) ) returns nvarchar(4000) as begin 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 upper(@PY) end 调用如下: 复制代码 代码如下: select dbo.[fun_getPY]('中国人') 首拼 结果: ZGR |
| 下载次数:4 |
| 下载地址:点击下载 |
| 本资源为程序自动采集,如有侵权请联系我们移除 admin#80vps.com 来信请将#替换为@ |
| 下一条 Sqlserver事务备份和还原的实例代码(必看) 上一条 sqlserver中根据字符分割字符串的最好的写法分享 |