汉字拼音首字母查询 Sql Function

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[F_SYS_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 @PY
END

GO
时间: 2024-10-08 03:32:01

汉字拼音首字母查询 Sql Function的相关文章

MySQL通过函数获取字符串汉字拼音首字母大写字符串

DELIMITER $$ DROP FUNCTION IF EXISTS `Fun_GetPY`$$ CREATE FUNCTION `HIS`.`Fun_GetPY` (in_string VARCHAR(21845)) RETURNS VARCHAR(21845) CHARSET utf8 BEGIN #截取字符串,每次做截取后的字符串存放在该变量中,初始为函数参数in_string值 DECLARE tmp_str VARCHAR(21845) CHARSET gbk DEFAULT ''

获取整条字符串所有汉字拼音首字母的函数

不错的函数 拿来用用 function pinyin_long($zh){ //获取整条字符串所有汉字拼音首字母 $zh=gainChinese($zh,100);//提取中文 $ret = ""; $s1 = iconv("UTF-8","gb2312", $zh); $s2 = iconv("gb2312","UTF-8", $s1); if($s2 == $zh){$zh = $s1;} for($i

C# 获取汉字拼音首字母

最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精   本节探讨C#获取汉字拼音首字母的方法: 代码类东西,直接上代码: /// <summary> /// 在指定的字符串列表CnStr中检索符合拼音索引字符串 /// </summary> /// <param name="CnStr">汉字字符串</param> /// <returns&

取汉字拼音首字母的方法

近期在做一个按拼音首字母排序的ListView须要取汉字拼音首字母,Deomo下载地址:http://download.csdn.net/detail/u014649598/8494777,做了例如以下的方法: 代码例如以下: package com.android.pinyin; import java.io.UnsupportedEncodingException; import android.app.Activity; import android.os.Bundle; import a

java获取汉字拼音首字母 --转载

在项目中要更能根据某些查询条件(比如姓名)的首字母作为条件进行查询,比如查一个叫"李晓明"的人,可以输入'lxm'.写了一个工具类如下: import java.io.UnsupportedEncodingException; /** * 取得给定汉字串的首字母串,即声母串 * Title: ChineseCharToEn * @date 2004-02-19 注:只支持GB2312字符集中的汉字 */ public final class ChineseCharToEn { priv

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

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

C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母

代码参考该文http://www.cnblogs.com/yazdao/archive/2011/06/04/2072488.html VS2015版本 1.使用Nuget 安装 "SimplifiedChinesePinYinConversion" 2.代码: using Microsoft.International.Converters.PinYinConverter; using System; using System.Collections.Generic; using S

【JAVA】获取汉字拼音首字母

最近在做通讯录的时候,需要把姓转换为拼音字母 1-9 a-z A-Z 转换为#:借张微信的图大家感受下 网上的代码很多,不外乎两种 1:pinyin4java包太大 2:大部分不支持生僻字,比如“栾.鑫” 认不出 本方案解决了这个问题,就很简单一个helper类,注意,只是拼音首字母哦!且编码格式为GBK! 代码很简单,就是在正常GBK检索不到的生僻字上,再加入一个字典,如果GBK检索不到,则在字典里找. package zhexian.app.smartcall.Utils; import j

ios/android获取汉字拼音首字母

android/ios开发如何获取汉字拼音的首字母? 提供的一个比较好的方案,是使用 c语言编写的一个算法,可以 在ios和 android.下面提供一个可以使用的代码,并且附上使用方法: /* * pinyin.c * Chinese Pinyin First Letter * * Created by George on 4/21/10. * Copyright 2010 RED/SAFI. All rights reserved. * */ #define HANZI_START 1996