动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库学院 > DB2教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ DB2教程 ]的信息



本月文章推荐
.DB2中实现Oracle的相关功能.
.DB2 Performance Expert 简化性能.
.快速解决DB2创建存储过程时所遇到.
.DB2中出现SQL1032N错误现象时的解.
.DB2数据库创建存储过程时遇到的错.
.DB2数据库的表数据加密代码解析.
.DB2备份恢复数据库步骤.
.深入优化DB2 数据库的五个最佳实.
.使用DB2look重新创建优化器访问计.
.IBM 数据库 DB2 9 的九大新特性(.
.DB2中的数据移动——装入(1).
.用AWK实现DB2 数据库 Schema的同.
.使用DB2数据库临时表的注意事项.
.DB2 变更管理工具与Rational DA集.
.详细讲解IBM DB2的数据复制和迁移.
.AIX环境下DB2许可证问题的解决方.
.在DB2数据库中很难理解的catalog.
.提高商业智能环境中DB2查询的性能.
.DB2 V9.5工作负载管理之阈值(THR.
.DB2 V9.5工作负载管理之如何实现.

DB2中创建一个汉字拼音首字母的SQL函数(1)

发表日期:2008-2-9 |


  需求  有些时候我们会有这样的需求,要求使用字母从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 梆 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥
12下一页   可以看到从B0A0-1 开始,至B0C0-5,是拼音A开头的汉字,恰好是按照拼音字母的先后顺序排列,并且把音调的因素也考虑进去了,由此,可以推断出,数据库在GBk编码的数据库中对汉字进行排序,即是依照字符内码表的编码进行的。  我们把B0C0-5 位置的汉字记录下来,即“澳”字,这是以“a”拼音开头在内码表中排列在最后的汉字,用同样的方法,我们找出所有以拼音从b至z开头,在内码表中排列在最后的汉字,与26个字母的对应关系如下:'澳' a
'怖' b
'错' c
'堕' d
'贰' e
'咐' f
'过' g
'祸' h
i
'骏' j
'阔' k
'络' l
'穆' m
'诺' n
'沤' o
'瀑' p
'群' q
'弱' r
'所' s
'唾' t
u
v
'误' 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
  实现  接下来很方便的就可以写出这个函数的具体实现,在实现的代码中,我们又加入了针对英文字母的处理,函数编译后,可通过如下方式调用:select getIndex( '索' ) index from dual;
index
------
f
  实际使用中,应注重建立数据库时字符集参数的设置,应使用GBK字符集。  应用以下命令查看已建立数据库的字符集:db2 connect to db_name user user_name using password
db2 get db cfg | grep -i 'code set'
  此参数在数据库建立之后不能修改。 上一页12

上一篇:提高数据库性能 让无关处理放到外层实现 人气:464
下一篇:使用DB2look重新创建优化器访问计划(1)(1) 人气:554
浏览全部DB2教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-7 pmwiki v2.2.0 beta 66
2008-7-7 HIWEB 网站快车 v8.5 Build 0807
2008-7-7 AyWeb企业网站管理系统 v2.2 bui
2008-7-7 Modoer多功能点评系统 v1.0 Buil
2008-7-7 因特达crm2008客户关系管理系统
2008-7-7 Modoer多功能点评系统 v1.0 Buil
2008-7-7 hahaCMS v0.2.2
2008-7-7 乖乖网络电视直播程序 v1.8
2008-7-7 XML文章系统 v1.04
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報