DB2中创建一个获取汉字拼音首字母的SQL函数

有些时候我们会有这样的需求,要求使用字母从a至z对一组数据进行索引,如果数据的格式全部是半角的英文则很容易实现,但若是对一组中文数据进行索引则会引起一点小的麻烦,数据在录入数据库的时候可能并没有指定一个索引字母,这就要求应用程序可以自动生成用于索引的信息。

一般对于中文数据的索引,采用词组的首汉字拼音的首字母,例如:

词组 索引字母

--- -----

熊猫 x

白暨豚 b

藏野驴 z

在DB2中并没有提供相应的函数可以取得汉字拼音的首字母,我们可以利用数据库针对中文字符集的排序功能创建一个这样的函数。

工作原理

我们知道在使用中文字符集的数据库中,当你对一列中文数据使用order by 排序时,排序的结果正是按照每行记录第一个汉字的拼音首字母进行排列的,那么我们需要想办法取得这个字母。

但是数据库内部是如何做到这一点的呢?以中文字符集GBK为例,让我们查看一下GBK字符集的内码表,我们仅摘出一段:

0 1 2 3 4 5 6 7 8 9 A B C D E F

B040 癅 痨 痫 癈 瘅 癊 癋 癎 癏 癐 癑 癒 癓 癕 癗 疠

B050 癙 癚 癛 癝 瘪 癠 痴 痒 疖 症 癦 癧 ?癞 癪 癣

B060 瘿 瘾 痈 瘫 癫 癳 癴 癵 癶 癷 癹 発 发 癿 皀 皁

B070 皃 皅 皉 皊 皌 皍 皏 皐 皒 皔 皕 皗 皘 皑 皛

B080 皜 皝 皞 皟 皠 皡 皢 皣 皥 皦 皧 皨 皩 皪 皫 皬

B090 皭 皯 疱 皳 皵 皶 皷 皲 皹 皱 隳 皼 皽 皾 盀 盁

B0A0 盃 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘

B0B0 鞍 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱

B0C0 袄 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋

B0D0 靶 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑

B0E0 班 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮

B0F0 梆 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

时间: 2024-08-20 22:26:22

DB2中创建一个获取汉字拼音首字母的SQL函数的相关文章

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

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

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

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

java字符串获取汉字拼音首字母的实现方法

问题描述 java字符串获取汉字拼音首字母的实现方法 网上有很多方法可以通过汉字来获取汉字拼音的首字母,我要实现的是这个字符串当中 还包含了特殊符号,比如字符串为:省辖市属(地区.州.直辖市区),想要获得最终 结果为:SXSS(DQZZXSQ),请各位大侠支招 解决方案 按描述你对获取汉字首字母应该没问题, 对含特殊符号的字符串,可先提取其中的汉字,然后再获取拼音啊 public static String getChineseCode(String retCode){ Pattern patt

php获取中文拼音首字母类和函数分享_php实例

一.公司同事整理的类,挺实用的.相信拿出来分享下他不会介意的O(∩_∩)O.不过如果首字母是数字或英文会有些问题. 复制代码 代码如下: /** * Helper_Spell 汉字拼音首字母工具类 * * @category Helper * @package  Helper_Spell * @author   Lancer <lancer.he@gmail.com> * @version  1.0 * @see      Translation_Big2gb */ class Helper_

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

Android程序开发之获取汉字的首字母_Android

获取一个汉字的拼音首字母. GB码两个字节分别减去160,转换成10进制码组合就可以得到区位码例如汉字"你"的GB码是0xC4/0xE3,分别减去0xA0(160)就是0x24/0x430x24转成10进制就是36,0x43是67,那么它的区位码就是3667,在对照表中读音为'n'. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&quo

PHP获得中文汉字拼音首字母例子

先来看看怎样取得单个汉字的拼音首字母,请看下面这个函数,它支持GBK和UTF8编码:  代码如下 复制代码 function getfirstchar($s0){    $fchar = ord($s0{0});  if($fchar >= ord("A") and $fchar <= ord("z") )return strtoupper($s0{0});  $s1 = iconv("UTF-8","gb2312"

获取字符串中的汉字拼音首字母_C#教程

获取字符串中的汉字拼音首字母(根据http://blog.csdn.net/iwebsms/archive/2004/09/28/119851.aspx修改) 可能代码比较臃肿,希望有朋友再帮忙改正   //返回给定字符串的首字母   private String IndexCode(String IndexTxt)   {    String _Temp=null;    for(int i=0;i<IndexTxt.Length;i++)     _Temp = _Temp + GetOne

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