快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

永乐国际乐仔在其中_机器人论坛网进入



有些时刻我们会有这样的需求,要求应用字母从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 梆 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥

可以看到从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

’孕&rs永乐国际乐仔在其中q永乐国际乐仔在其中uo; y

’座 z

注:没有以’i’,’u’,&永乐国际乐仔在其中rsquo;v’开首的汉语拼音。

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

实现

接下来很方便的就可以写出这个函数的详细实现,在实现的代码中,我们又加入了针对英翰墨母的处置惩罚,函数编译后,可经由过程如下要领调用:

select getIndex( ’索’ ) index from dual;

index

------

f

原代码如下:

create function getIndex (

in_strChn varchar(2)

) returns char(1)

language sql

external action

reads sql data

begin atomic

declare chresult char(1);

declare n integer default 0;

if( in_strChn = ’’ or in_strChn is null or lengthb( in_strChn ) > 2 ) then

return null;

end if;

if(( ascii( in_strChn ) >= ascii(’A’) and ascii( in_strChn ) = ascii(’a’) and ascii( in_strChn )

实际应用中,应留意建立数据库时字符集参数的设置,应应用GBK字符集。

利用以下敕令查看已建立数据库的字符集:

db2 connect to db_name user user_name using password

db2 get db cfg | grep -i ’code set’

此参数在数据库建立之后不能改动。

您可能还会对下面的文章感兴趣: