亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > DB2 > 正文

DB2中創建漢字拼音首字母的SQL函數

2024-09-06 23:57:57
字體:
來源:轉載
供稿:網友

本文介紹了在DB2中創建漢字拼音首字母的SQL函數實現方法。

需求

有些時候我們會有這樣的需求,要求使用字母從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

實現

接下來很方便的就可以寫出這個函數的具體實現,在實現的代碼中,我們又加入了針對英文字母的處理,函數編譯后,可通過如下方式調用:

select getIndex( '索' ) index from dual;index------f

實際使用中,應注意建立數據庫時字符集參數的設置,應使用GBK字符集。

應用以下命令查看已建立數據庫的字符集:

DB2 connect to db_name user user_name using passWorddb2 get db cfg | grep -i 'code set'

此參數在數據庫建立之后不能修改。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内外成人免费激情在线视频网站| 亚洲综合在线中文字幕| 国产综合久久久久久| 日韩精品在线私人| 91日本在线视频| 国产综合福利在线| 成人福利在线视频| 92看片淫黄大片欧美看国产片| 国产99视频在线观看| 欧美日韩国产va另类| 日韩精品视频中文在线观看| xxx欧美精品| 欧美一级淫片videoshd| 欧美性猛交xxxx乱大交极品| 欧美在线中文字幕| 亚洲天堂日韩电影| 91国产视频在线播放| 欧美亚洲激情视频| 亚洲a在线播放| 91啪国产在线| 亚洲精品白浆高清久久久久久| 亚洲精品国偷自产在线99热| 国产精品jvid在线观看蜜臀| 国语自产精品视频在线看抢先版图片| 亚洲人成五月天| 日韩av最新在线| 中文字幕在线观看亚洲| 日韩视频永久免费观看| 国产精品视频一区二区三区四| 在线播放国产一区二区三区| 欧美激情一区二区三区久久久| 国产精品夜色7777狼人| 亚洲色图偷窥自拍| 成人黄色影片在线| 成人精品久久av网站| 日韩欧美第一页| 成人免费视频a| 国产欧美 在线欧美| 中文字幕亚洲字幕| 日韩福利在线播放| 亚洲人成在线播放| 欧美成人网在线| 国产精品成人播放| 亚洲欧美国产一区二区三区| 成人黄色在线播放| 欧美在线精品免播放器视频| 亚洲jizzjizz日本少妇| 国产精品久久久久久久久久久新郎| 国产精品第一页在线| 精品久久久久久久久国产字幕| 亚洲国产天堂久久综合网| 亚洲精品国偷自产在线99热| 性夜试看影院91社区| 国产精品九九久久久久久久| 国产日韩换脸av一区在线观看| 日韩精品电影网| 九九热精品视频| 色综合久综合久久综合久鬼88| 日韩免费观看视频| 欧美肥老妇视频| 91系列在线观看| 久久久久久网站| 九九精品在线观看| 国产成人精品一区二区| 91黑丝高跟在线| 亚洲最大福利网| 欧美成人亚洲成人| 久久久免费观看视频| 精品久久久久久中文字幕一区奶水| 精品成人久久av| 中文字幕日韩在线播放| 欧美激情影音先锋| 日韩av高清不卡| 久久久久久久久久久网站| 91在线精品播放| 麻豆国产va免费精品高清在线| 亚洲欧美日韩天堂一区二区| 91欧美激情另类亚洲| 亚洲成av人乱码色午夜| 欧美精品精品精品精品免费| 国产精品久久久久久久久久久新郎| 国产精品91在线| 亚洲免费一在线| 中文字幕精品一区久久久久| 国产精品久久久久福利| 国产精品网址在线| 在线日韩精品视频| 久久久久久亚洲精品中文字幕| 伊人久久综合97精品| 国产精品免费一区| 国产脚交av在线一区二区| 国产亚洲日本欧美韩国| 亚洲精品久久久久久久久久久久| 日韩a**中文字幕| 中文字幕免费精品一区高清| 亚洲人成网站999久久久综合| 国产精品一香蕉国产线看观看| 欧美极品少妇全裸体| 色香阁99久久精品久久久| 国产精品草莓在线免费观看| 久久久噜久噜久久综合| 欧美有码在线观看| 国产噜噜噜噜噜久久久久久久久| 日韩欧美999| 久久电影一区二区| 清纯唯美亚洲综合| 国模私拍一区二区三区| 国产精品自在线| 国产视频一区在线| 久久久亚洲网站| 91夜夜揉人人捏人人添红杏| 成人亚洲欧美一区二区三区| 91精品免费看| 亚洲精品国产综合久久| 久久韩剧网电视剧| 97香蕉超级碰碰久久免费软件| 亚洲欧美日韩第一区| 国产精品一区电影| 亚洲第一精品夜夜躁人人爽| 国产精品久久久久久久久久东京| 国产一区二区三区丝袜| 精品国产欧美一区二区五十路| 久久久久久亚洲精品| 日韩女优在线播放| 欧美极品美女电影一区| 7m第一福利500精品视频| 欧美老女人www| 91精品国产自产在线老师啪| 疯狂做受xxxx欧美肥白少妇| 5278欧美一区二区三区| 久久全球大尺度高清视频| 成人午夜高潮视频| 亚洲国产精品久久91精品| 45www国产精品网站| 亚洲男人av电影| 欧美精品videosex性欧美| 亚洲国产精品久久91精品| 中文字幕在线日韩| 91视频免费在线| 国产成人亚洲综合| 精品久久久久久| 久久久人成影片一区二区三区观看| 午夜精品一区二区三区在线| 欧美片一区二区三区| 欧美大片在线看免费观看| 久久精品男人天堂| 日韩专区在线观看| 亚洲激情视频在线播放| 亚洲一区二区自拍| 一区二区三区四区在线观看视频| www.日韩免费| 丰满岳妇乱一区二区三区| 日韩少妇与小伙激情| 一本色道久久88综合亚洲精品ⅰ| 亚洲天天在线日亚洲洲精| 亚洲偷熟乱区亚洲香蕉av| 精品国产乱码久久久久久婷婷| 亚洲缚视频在线观看| 日韩电视剧在线观看免费网站| 亚洲成人久久电影| 92福利视频午夜1000合集在线观看| 91爱爱小视频k| 亚洲精品成人av| 国产欧美日韩视频|