sqlserver 快速生成汉字的首拼字母的函数(经典)_MsSql

代码如下:

复制代码 代码如下:

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

时间: 2024-10-03 15:09:47

sqlserver 快速生成汉字的首拼字母的函数(经典)_MsSql的相关文章

sqlserver 快速生成汉字的首拼字母的函数(经典)

代码如下: 复制代码 代码如下: 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(

ASP在utf8及gb2312下取得汉字拼音首字母两个函数

ASP取得汉字拼音首字母utf8及gb2312下两个函数 以下是UTF-8编码下的函数:function GetPy4utf(char) if char=null or len(trim(char))=0 then exit function dim strCHSfirstPY strCHSfirstPY ="YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJ

utf 8-java utf-8编码 如何获得汉字的首字母

问题描述 java utf-8编码 如何获得汉字的首字母 java utf-8编码 如何获得汉字的首字母网上很多,但都是gbk的,我想要的是utf-8的,大家有知道的告诉我,急!!! 解决方案 package com.app.text;import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyi

Java获取汉字拼音的全拼和首拼实现代码分享_java

import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; /** * 将汉字转化为全拼 */ public class CnToSpell1 { private static Map<String, Integer> spellMap = null; //存放生僻字和其拼音的Map private static Map<Cha

用自定义函数获取汉字的首字母

用自定义函数获取汉字的首字母 <SCRIPT LANGUAGE=vbscript> <!-- '''''''''''''''''''''' '提供者:小白 '联系方法: 'E-mail:xiaobai@17560.net '欢迎大家测试 '针对chenjf网友发现的问题 '小白做了一处修改 '另外,对刘伟强网友的回复是:本函数目前只能获取..?呵呵 '如有不正确的地方,请提出来或是帮忙完善 '谢谢 '''''''''''''''''''''''''''''' function getpy

php获取汉字拼音首字母的函数(真正可以使用的

现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序.这是中国人大多数使用的排序方法.那么在php程序中该如何操作呢?下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的大多数是有问题的,这个可是经过作者实践应用过的,真的可以使用的哦. //php获取中文字符拼音首字母 function getFirstCharter($str){ if(empty($str)){return '';} $fchar=ord($str{0}); if($fchar>=ord('A')

python获取一组汉字拼音首字母的方法

  本文实例讲述了python获取一组汉字拼音首字母的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69

uitableview-求教:iOS中怎么判断汉字的首字母

问题描述 求教:iOS中怎么判断汉字的首字母 我需要在UITableView里根据姓氏首字母来分组显示人,然后根据索引来进行跳转.但现在的问题是不知道怎么判断姓氏的首字母,没法和索引的字母相关联. 解决方案 论坛里有相关的中文到拼音的转换程序,把他添加到工程里,再通过对拼音的截取,获取首字母,然后再做分组操作.

php获取汉字拼音首字母的方法_php技巧

现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序.这是中国人大多数使用的排序方法.那么在php程序中该如何操作呢? 下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的大多数是有问题的,这个可是经过小编实践应用过的,真的可以使用的哦. //php获取中文字符拼音首字母 function getFirstCharter($str){ if(empty($str)){return '';} $fchar=ord($str{0}); if($fchar>=ord('A'