您的位置: 首页 >> 新闻中心 >> 计算机 >> 软件开发
DB2创建汉字拼音首字母SQL函数
精英教育阅读提示:在DB2中并没有提供相应的函数可以取得汉字拼音的首字母,我们可以利用数据库针对中文字符集的排序功能创建一个这样的函数。
■ 最新课程推荐更多课程>>
学校培训课程开课时间上课地点精英价报名
正辰培训 微软软件测试工程师电话预约西直门教学区¥4704
新 科 海 软件测试工程师就业班电话预约海淀长远天地¥6280
北 师 大 软件工程与测试实战班电话预约北京师范大学¥1800
北 师 大 高级网络工程师就业班电话预约北京师范大学¥13000
金 同 方 网络工程师就业周末班电话预约人大总部¥7000

  需求

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

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

词组 索引字母--- -----熊猫 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 梆 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

  可以看到从B0A0-1 开始,至B0C0-5,是拼音A开头的汉字,恰好是按照拼音字母的先后顺序排列,并且把音调的因素也考虑进去了,由此,可以推断出,数据库在GBk编码的数据库中对汉字进行排序,即是依照字符内码表的编码进行的。

  我们把B0C0-5 位置的汉字记录下来,即“澳”字,这是以“a”拼音开头在内码表中排列在最后的汉字,用同样的方法,我们找出所有以拼音从b至z开头,在内码表中排列在最后的汉字,与26个字母的对应关系如下:

'澳' a'怖' b'错' c'堕' d'贰' e'咐' f'过' g'祸' hi'骏' j'阔' k'络' l'穆' m'诺' n'沤' o'瀑' p'群' q'弱' r'所' s'唾' tuv'误' w'迅' x'孕' y'座 z

  注:没有以'i','u','v'开头的汉语拼音。

  现在假若我们拿出任何一个汉字,放在我们挑选出的这些汉字中间,利用数据库进行一次使用GBK字符集的排序,我们便能够根据这个汉字排列的相对位置得到其拼音首字母。

  利用sql语句生成一组上述汉字的结果集,我们将'i','u','v' 三个空缺汉字的位置补上了上一个拼音的汉字,

select t1.strChn from ( select '澳' strChn from sysibm.sysdummy1 union all select '怖' strChn from sysibm.sysdummy1 union all select '错' strChn from sysibm.sysdummy1 union all select '堕' strChn from sysibm.sysdummy1 union all select '贰' strChn from sysibm.sysdummy1 union all select '咐' strChn from sysibm.sysdummy1 union all select '过' strChn from sysibm.sysdummy1 union all select '祸' strChn from sysibm.sysdummy1 union all select '祸' strChn from sysibm.sysdummy1 union all select '骏' strChn from sysibm.sysdummy1 union all select '阔' strChn from sysibm.sysdummy1 union all select '络' strChn from sysibm.sysdummy1 union all select '穆' strChn from sysibm.sysdummy1 union all select '诺' strChn from sysibm.sysdummy1 union all select '沤' strChn from sysibm.sysdummy1 union all select '瀑' strChn from sysibm.sysdummy1 union all select '群' strChn from sysibm.sysdummy1 union all select '弱' strChn from sysibm.sysdummy1 union all select '所' strChn from sysibm.sysdummy1 union all select '唾' strChn from sysibm.sysdummy1 union all select '唾' strChn from sysibm.sysdummy1 union all select '唾' strChn from sysibm.sysdummy1 union all select '误' strChn from sysibm.sysdummy1 union all select '迅' strChn from sysibm.sysdummy1 union all select '孕' strChn from sysibm.sysdummy1 union all select '座' strChn from sysibm.sysdummy1 ) as t1

本新闻共2页,当前在第1页  1  2

  影视动画培训   北大BEC培训官方报名网站   2008美国夏令营启航官方指定报名网站   2008留学第一站!  
  北师大 火星时代
共举影视动画培训之鼎
  北大BEC培训官方报名网站
现在报名独享95折!
  2008年国家职业资格考试
一次过关完全备考手册
  2008留学第一站
留学资讯尽在精英留学站!
 
上一篇:SQL Server四类数据仓库建模的方法
下一篇:浅谈Linq To Sql集成数据库语言优劣
 相关新闻
·Spring破冰之旅 始于足下·为Java程序中添加播放MIDI音乐功能
·详细解析Java中抽象类和接口的区别·争鸣:Java的Web框架 让我如何去爱你
·JavaBean中使用JDBC方式进行事务处理·如何使用 .NET Compact Framework
·SQL概述For SQL Server Compact Edition·C&C++论战之C++真的还有未来吗?
·瘦身前后——兼谈C++语言进化·《C++0x漫谈》系列之:右值引用
·VB编程实现图像的漂亮效果·Visual Basic Print方法基础学习
·简单介绍Visual Basic中的Do循环结构·Visual Basic变量的基础学习
·Oracle 10g列值掩码技术隐藏敏感数据·浅谈Linq To Sql集成数据库语言优劣
 
◇ 重点栏目导航
◇ 精英服务承诺
教育顾问:010-51660910
QQ交流:138660910
相关资料
·软件测试新手的修炼之路
·Smarty简体中文参考手册
·Struts中文手册
·Struts快速学习指南
·ultradev动态网页制作教程
·UML工具箱
·《设计模式》中文版
·学友Flash伴侣 1.11
·阿须图像水印(AssureMark)V2.0
·超级语霸
相关试题
·2007年全国CPA考试试卷及答案解析之《会
·2007年CPA试卷及答案解析之《财务成本管
·2008年注会考前模拟试题之《财务成本管理
·2007年全国CPA《税法》考试试卷及答案解
·2008年中级会计职称《经济法》试题及答案
·2008年注册会计师考前模拟试题参考答案之
·2008年注册会计师考前模拟试题之《会计》
·2008年注册会计师考前模拟试题之《税法》
·2008年高校招生全国统考理数试题(四川延
·2008年全国高考物理科试题参考答案(上海
相关热贴
·如何改QQ IP地址!
·恰当选择软件测试自动化方案
·ADO.NET学习总结
·.net操纵xml文件类(c#)
·Log4net教程
·VPN技术详解
·高手必读 网络端口安全防护技巧放送
·访问XP共享出现的问题解决办法
·Web2.0时代,RSS你会用了吗?(技术实现总
·.NET下正则表达式应用的四个示例