数据库汉字排序规则__按笔画排序

合集下载

oracle 按拼音 比划排序

oracle 按拼音 比划排序
oracle 按拼音 比划排序
个人分类:oracle开发
找了相关的一些资料,都说的不是很清楚,自己也研究了下,终于搞明白了,希望对大家有帮助。
需要说明的是下面的方法需要ORAC来自E9i和以上的版本才支持。 Oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
1: //按照笔划排序
2: select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');
3: //按照部首排序
4: select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序
举例如下:
表名为 dept ,其中name字段是中文,下面分别实现按照单位名称的笔划、部首和拼音排序。
5: //按照拼音排序,此为系统的默认排序方式
6: select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
注意,该SQL指令并非标准指令,在SQLServer下面的实现方式并不相同。google_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad);

电子表格“按姓名笔划”排列方法

电子表格“按姓名笔划”排列方法

电子表格“按姓名笔划”排列方法
一、按“按姓名笔划”排列方法:
在编排姓名时,要“按姓名笔划”排列。

其编排方法是:
1.以姓第一个字的笔划数多少排列法。

即以姓名第一个字的画数多少排列顺序。

画数少的在前,多的在后,依次排列。

单姓、复姓以及少数民族中的长姓均以姓名的第一个字,而不是以姓的多少为序。

2.同姓同字比较排列法。

若姓名的第一个字相同,则应以第二个字的笔划相比
较,以此类推。

二、电子表格(EXCEL
1、编制公式如下:
向下填充公式
2、排序
进行自定义排序
在选项中选
按笔划排序
按“确定”后就OK了,希望对你有用,谢谢!。

mysql数字字母汉字排序规则

mysql数字字母汉字排序规则

MySQL的排序规则是基于字符集和校对规则的。

对于数字、字母和汉字,MySQL使用不同的校对规则。

1. 数字: 数字是按照数值大小进行排序的,这是默认的排序方式。

2. 字母: 字母的排序通常依赖于校对规则。

例如,使用`utf8_general_ci`校对规则,字母是按照字母表顺序进行排序的。

`ci`表示大小写不敏感。

3. 汉字: 对于汉字,排序规则更加复杂。

汉字有多个不同的字符集,如`utf8`、`utf8mb4`等。

排序规则如`utf8_general_ci`或`utf8_bin`会影响汉字的排序方式。

* `utf8_general_ci`: 按照一般的汉字习惯进行排序,不区分声调、笔画、部首等。

* `utf8_bin`: 按照二进制值进行排序,这通常意味着按照字符的字节顺序进行排序。

如果你想对数字、字母和汉字进行排序,你需要明确指定校对规则。

例如,如果你想按照汉字的笔画顺序进行排序,你可能需要使用第三方插件或自定义的校对规则。

总的来说,MySQL的排序规则取决于字符集和校对规则的设置。

如果你需要特定的排序行为,你可能需要调整这些设置或者使用自定义的排序函数。

按姓氏笔画排序的规则

按姓氏笔画排序的规则

按姓氏笔画排序的规则:
1、笔画数由少到多的原则.按照姓的笔画多少,少的排在前,多的排在后
2、笔画数相同的,按姓氏起次笔排序的原则.按“一(横)、丨(竖)、丿(撇)、丶(捺、点)、冖(折)”的顺序排列.
3、同姓一般以姓名的第二个字的笔画多少为序.
4、姓氏的笔画数相同、起次笔顺序一致的,按姓氏的字形结构排序的原则.先左右形字,再上下形字,后整体形字.
5、对于姓氏的笔画数相同、起次笔顺序一致,且字形结构相同的,左右形汉字的排序要遵循——按“左偏旁”笔画数由少到多的顺序排定之原则。

mysql汉字排序规则

mysql汉字排序规则

mysql汉字排序规则MySQL数据库系统中,汉字排序规则是十分重要的,它将直接影响到用户数据的顺序与显示,在此介绍MySQL汉字排序规则,希望能够提供SQL查询优化等操作的参考。

MySQL汉字排序规则最主要的依据是Unicode规范,它把汉字分为简单汉字(单字节编码)和复合汉字(双字节编码),简单汉字按照Unicode编码自动排序,而复合汉字按照拼音的笔画数和汉字的Unicode码进行排序。

首先,在排序的过程中,MySQL会对所有的汉字字符进行判断,根据其所占的字节数,将其分为简单汉字(占1个字节)和复合汉字(占2个字节)。

如果字符串中只有简单汉字,MySQL会根据其Unicode 编码值进行排序;如果字符串中既有简单汉字又有复合汉字,MySQL 会先将简单汉字按照Unicode编码值进行排序,然后将复合汉字按其拼音的笔画数和汉字的Unicode码进行排序,最后将两者合并进行排序。

其次,在MySQL中,中文排序规则有两种,一种是按照拼音排序,该规则会把汉字按照其对应的拼音进行排序,拼音使用Unicode拼音标准。

另一种是按照笔画排序,该规则会把汉字按照其笔画数排序,笔画数从1到12,从小到大排序。

最后,使用MySQL中文排序规则时,要特别注意unihan.txt文件,它是MySQL汉字排序规则的核心文件,包含了多种语言中大量汉字的拼音、笔画、读音等信息,MySQL会根据unihan.txt中的信息,为汉字排序。

总之,MySQL汉字排序规则是根据Unicode规范,结合unihan.txt 文件,对简单汉字和复合汉字分别按其Unicode码值和拼音的笔画数进行排序,其中还需要根据字节数来进行区分,并有按照拼音和按照笔画两种排序规则可供使用。

MySQL汉字排序规则的正确设置对SQL 查询有着至关重要的作用,其能够有效提高用户搜索效率,提供数据输出的准确性和可读性,最终达到优化查询的最佳效果。

sql server 中文排序规则

sql server 中文排序规则

SQL Server 中文排序规则在数据库管理中,排序规则(Collation)是一个非常重要的概念,它定义了数据库中字符数据的比较和排序方式。

在处理中文数据时,正确选择和使用排序规则尤为重要,因为它直接影响到数据的检索、排序和比较结果的准确性。

一、SQL Server 中的排序规则SQL Server 支持多种排序规则,其中包括针对中文语言的排序规则。

这些规则基于不同的字符集和排序算法,可根据实际需要进行选择。

例如,有些排序规则区分大小写,有些则不区分;有些规则按照拼音排序,有些则按照笔画数排序。

二、中文排序规则的选择1. 区分大小写:根据需要选择是否区分大小写的排序规则。

对于大多数中文应用场景,通常不需要区分大小写。

2. 拼音排序:如果需要按照拼音对中文数据进行排序,可以选择相应的拼音排序规则。

3. 笔画数排序:如果希望按照汉字的笔画数进行排序,可以选择笔画数排序规则。

4. 自定义排序:SQL Server 还支持自定义排序规则,以满足特殊需求。

三、设置和使用中文排序规则在 SQL Server 中,可以在创建数据库或表时指定排序规则,也可以在查询时临时改变排序规则。

以下是一些示例:1. 创建数据库时指定排序规则:```sqlCREATE DATABASE MyDatabaseCOLLATE Chinese_PRC_CI_AS; -- 使用中文简体不区分大小写的排序规则```2. 创建表时指定列级排序规则:```sqlCREATE TABLE MyTable(Name NVARCHAR(100) COLLATE Chinese_PRC_Stroke_Order_CS_AS -- 使用中文简体按笔画数区分大小写的排序规则);```3. 查询时临时改变排序规则:```sqlSELECT * FROM MyTableORDER BY Name COLLATE Chinese_PRC_Pinyin_Order_CI_AS; -- 按拼音不区分大小写排序```四、注意事项1. 不同排序规则可能影响查询性能,因此应根据实际需求和性能测试结果选择合适的排序规则。

sql max(中文)的排序规则

sql max(中文)的排序规则

sql max(中文)的排序规则SQL中的max()函数是用来获取某一列中的最大值的,但是在使用max()函数时,需要注意到中文的排序规则。

中文排序规则与英文排序规则不同,因此在使用max()函数时需要特别注意。

中文排序规则是按照汉字的笔画顺序进行排序的,而英文排序规则是按照字母表顺序进行排序的。

因此,在使用max()函数时,如果列中包含中文字符,那么需要使用中文排序规则进行排序,否则会出现排序错误的情况。

在SQL中,可以使用COLLATE关键字来指定排序规则。

例如,如果要按照中文排序规则对一个列进行排序,可以使用以下语句:SELECT * FROM table_name ORDER BY column_name COLLATE Chinese_PRC_CI_AS DESC;其中,Chinese_PRC_CI_AS是中文排序规则的名称,DESC表示降序排列。

除了使用COLLATE关键字外,还可以在创建表时指定列的排序规则。

例如,可以使用以下语句创建一个包含中文字符的列,并指定其排序规则为中文排序规则:CREATE TABLE table_name (column_name VARCHAR(50) COLLATE Chinese_PRC_CI_AS);在使用max()函数时,也需要注意到中文排序规则。

例如,如果要获取一个列中的最大值,并且该列包含中文字符,可以使用以下语句:SELECT MAX(column_name COLLATE Chinese_PRC_CI_AS) FROM table_name;其中,MAX()函数用于获取最大值,COLLATE关键字用于指定排序规则。

需要注意的是,在使用max()函数时,如果列中包含数字和中文字符混合的情况,需要先将中文字符转换为数字,然后再使用max()函数。

例如,如果一个列中包含如下数据:12三4五要获取该列中的最大值,可以使用以下语句:SELECT MAX(CASE WHEN ISNUMERIC(column_name) = 1THEN CAST(column_name AS INT) ELSE 0 END) FROM table_name;其中,ISNUMERIC()函数用于判断一个字符串是否为数字,如果是数字则返回1,否则返回0。

CJK统一汉字表笔画数排序

CJK统一汉字表笔画数排序

CJK统一汉字表(笔画数排序)CJK统一汉字表(20902字,笔画序)排序要求:字体以《GB 14245.1-2008 信息技术汉字编码字符集(基本集)64点阵字型第1部分:宋体》(接近于“宋体-方正超大字符集”)为准,“羐”、“蘷”等字字形上部为“艹”而非“卝”排序规则:《GB13000.1字符集汉字字序(笔画序)规范》,部分排序错误的字进行了修改1.按字的笔画数排序,少的在前多的在后;2.同笔画数的,按主笔形“横竖撇点折(一丨丿丶乛)”排序,前一笔相同则比后一笔;3.主笔形相同的,按“横→提,竖→竖钩,点→捺”排序,折笔按折点数排序,同折点数按折笔每段的笔形(横竖撇点)排序;4.笔形相同的,按笔画组合方式“相离→相接→相交”排序;相离的按离开位置“左边→右边→上边→下边”排序,相接的按“笔画端相接→笔画身相接”排序,笔形有长短差别时先短后长;5.组合方式相同的,则按字的结构“上下→左右→包围”结构来排序。

【一画】(一)一(丨)丨亅(丿)丿(丶)丶乁乀(乛)乛乚乙【二画】(一)二丅十丁厂丆匚匸七丂(丨)丄刂卜冂(丿)亻八人入乂勹儿匕几九(丶)亠冫丷冖讠(乛)刁了凵丩卩阝刀力乃又厶乄廴巜乜【三画】(一)三干亍于亏亐工土士扌艹卄才下寸丌廾大丈兀尢与万弋夨(丨)上小凣口囗山巾(丿)千乇乞川亿彳彡凢亼个乊亽亾兦亇犭夕久夂夊么勺凡丸及饣(丶)丬广亡门丫义氵忄宀辶之(乛)彐卂尸己已巳弓孒子孑卫屮孓卪也女乆刃刄飞劜习叉马彑纟乡幺巛【四画】(一)亖丰王亓开井天夫元无韦云弌专耂圡丐圠扎廿艺木朩乤五帀巿邒支丏厅卅不冇仄犬太区历歹友厷尤厄匹辷车戸巨牙屯戈旡兂比互切瓦(丨)卝止攴少尐曰日冃冄中円乢贝罓冈内內水见禸(丿)午牛手气毛壬牜升夭攵长仁什仃片仆仈化仉仇屲币仂仍仅仏斤爪丯戶反仐兮刈介父从仌爻尣乥仑爫仒今凶分乏公仓月勻卆厃氏勿欠勽匁风匂勼丹匀乌卬殳勾凤厹(丶)卞亣六文亢方闩火兯为斗忆灬计订户礻讣认冘冗讥心(乛)肀丮尹卐尺夬弖引弔丑卍爿巴孔队阞収丒刅办夃以允予邓劝双厸毌书毋幻乣【五画】(一)弍玊玉匞玌刊未末示击邗邘丼戋圢打巧正圤扑卉圦扒扖圥扏凷壭卭邛功扐扔去払甘艼世丗卌艾芁艽古节芀艻艿本术札朰朮刌辻可叵匝丙厈圧左厉丕石右布厇夳夲夰冭夯厺戊龙犮匛平灭巪乬轧东匜劢戉(丨)卡仧北占凸歺卢业旧帅归氺旦目且叶曱甲申叮电号田由卟只叭叺史央叱兄叽叼叫叩叨叧叻另叹甴亗冉帄屵罒皿冊凹冋邖屶屴屷囚四囙囘冎囜(丿)钅玍生矢失氕乍禾尓刋叐刉仨仠丘仜仕付仗代仩仦仙仟仛仡仫仢伋们仪白仔他仞仭斥卮瓜仝仺尒仚屳乎丛込令用甩肊印氐尔乐句叴凧匆犰匃册卯匇犯匄外处処冬鸟夘邜务夗刍饤包饥(丶)主冮市庁庂庀疒邝広立冯邙玄闪氷兰半汁汀汇汅乧头汃汄氿汈氻汉氾忊忉忇宁穴它宂宄讦讧讨戹写让衤礼冚讪讬讫训议必讯记永讱(乛)司叏尼凥尻民弗邔弘疋阢叾出阡阣辽阠阤氶氹奵邚奶奴丱尕召加皮辺边辸孕发圣对弁厼台癶矛纠驭母幼丝廵【六画】(一)弎弐匡耒邦玎兲玐玑玏丟式迀迂幵刑邢邞刓戎邧忈动迃圩扞扜圬扝圭扛扗寺圷扙扤圵卋吉扣圸圲扦考圫圪托扥扢圳老圴巩圾扚执扱圹扩扪赱扫扟圮圯地扡场扬扨扠耳芉芋芌芏芐共芖芅芇芊芕芍芃芄芨芒亚芝芑芎芓芆芗朾朽朴朳朲杁朼机朹朻朷朸权过亘臣吏再襾覀朿両协西亙攰压厌厍厊戌在百有乭存而页匠夸圶夺夶夵夻夼灰达戍匢尥列死成匟夹夷轨邪邨攷尧划迈毕至瓧邷(丨)尗丠此乩贞虍师尘尖劣光当旪早吁叿吐吓吋旯曳旫虫曲团団吅吕同吊吀吒吃因吸吖吇吔吗吆屽屸屼屿屾岀屹岁岋岌帆辿回屺岂屻岃则刚网肉氼凼囝囡(丿)钆钇年朱缶劧刏氘気氖先牝牞丢廷舌竹迁圱乔迄毎仹仼伕伟伝传乒乓休伍伂伎伓伏伛伖优伌臼伡佢伢伅伐仳仾延佤仯仲伣仵件任仸伤伥伒乑仮价伦仱份伀伧仴华伜伆伨仰伇伩伉仿伙伪伫伔伈自伊癿甶伬伄血向囟似伃后邤劤行彴彶彵甪舟全会杀合兆企氽汆乯众爷伞兇邠兊创刖肌肍肋凨朵凩杂夙危氒凪旬旨旮旭负犴犲犵刎犳犱犷匈乮犸刐舛夅名各灳多奿凫争邬色饦饧(丶)冴冱壮冲妆冰庄庆亦庅刘齐交衣次邟劥产决吂巟亥邡充妄闫闬闭问闯羊并关米屰灯灲灮邩灱州弚汗汙污汚江汢汏汕汘汑汔汌汐汣汷汋汍汎汲汒汛汜汓池汝汤汊忓忖忕忏忔忛忣忙忋忚兴宇守宅穵宆字安讲讳讴军讵讶祁礽肎讷许讹论讻讼农讽邥设访诀(乛)聿寻帇那夛艮厾迅刔尽迉弙导异弜弛妀阱阮孙阫阨阵孖阰阯阳阥阩收阪阶阴艸阬防阦阧乪丞阭迆奸妅朶如奾奷奼奺妁妇妃好她奻妈乫刕劦戏羽乨贠观牟欢买叒厽纡红纣驮纤纥驯约纨级纩纪驰纫糸糹巡【七画】(一)匤寿玕玗玒弄玙玔麦玖玓迋玘玚玛攼坓形进戒吞迗坖远违韧刬运抂扶坃抏抚镸坛抎抟技坏抔抠坜抜扰扼拒坉扽找批坘瓨址扯走抄抇贡汞坝抐抙抍攻坆扷扸赤圻折抓坂扳圿扴抡扵坅扲坋扮抸抢抈坁扺孝圽坎扻坍均抣坞抑抛坄投抅抃坟抆坑抗坊灻抖护売壱壳坈抌志抋块択抉扭声把报刦拟抁却抒刧劫毐抝耴茾芙芫芜苇邯芸芾芰芣苈苃苊苉苣芽芚芘苆芷芮苋芞芼芺苌芢花芿芹苅芥苁芲芩芬苍芪芴芡芟芶苄芠苀芳严苂苎芦芯劳芛芵克芭芤苏苡芧杆杅杇杠杜杢材村杕杖杌杤杙杏杣杄杔杚杊杉巫杦杓杋极杧杞杛杍李杝杨杒杈杩求忑孛車甫匣更亜束吾叓豆戓迊两邴酉丽医辰厐励兏丣奀邳否还矴矵厑矶劯厏厎夽奁奆夾迖迏夿尫尪豕尨尬歼来亊忒连欤轩轪轫迓迍坒匥瓩巠坙(丨)邶忐芈步卤卣邺児坚盀肖旰旱旴盯呈圼刞时咞貝吴呋旲呒見助呍县囯里呓呆旵吱囲吥吠呔呕园呖吰旳昅呃旷围呀吨妟旸曵吡囩咓町甼甹足虬邮男廸困吵迚肙串呗员呐呙吶吘吽呏呚吪囨呂听吤吟吩呛別吻吹呁呜吺呅吭吙呌吣吚呎吷呉吳吲吜吧邑吼囤别吮岍岏帏岐岖岠岈囬刪岗汖岘岆帐岓岅岕岒岑岎帉岄岉岚岇帎兕岜帊囦囮坔财囧冏呇囵囫觃囥図(丿)针钉钊钋钌吿迕劮毜氙氚毝牡告牤牠牣我乱利秂禿秃秀私忎呑岙每佅佞佂兵邱佉佄伳估体何佐伾佦佑佈伻佧佔攸但伹伸佃伷伿佒佀伵佚作伯伱佡伶佣低你佝佟佨住位伭伴佇佗佖皁身皂臫皀皃劰廹伺伲兎佛伮佋伽佊囪囱佁乕近巵彺彻彸役坕彷辵返佘余希佥兌釆坐谷尦寽孚妥豸含刢邻坌弅岔肝肟肛肚肘肐肜肑肒肞迌肔肗肠肕凬匉帋邸龟甸奂免邭劬狂狇犻犾犹犽狆狈狅犿犺狄飏角删狃犼狁鸠夆条彤卵灸斘岛邹刨饨迎饩饪饫饬饭饮系(丶)訁言冹冻状亩况亨庑庒床庋库庌庉庇亪庍庎庈疔対疕疗疖疓吝彣应这冷庐斈応乲序迒辛竍冸竌杗冺肓弃冶忘闰闱闲闳间闵闶闷羌判兑灴灶灷灿灹灼灺炀弟沣汪汧汫沅沄沐沞沛汥沔汱汰沤沥汯沋洰沌沘沍沏沚沙汩汨沖汭汻汼汽沃沜沎沂沠汳沦汵汹汾泛沧汦泲沕沨汮没沒沟汴汶沆汸沩沪沈沉沁沢決沑泐泤沇汿忹忨怃忶忮怀忲怄忧怇忳忡忤忾怅忻忦忴忷忪怆忰忯忺忭忟忼忱快忸忬労宑完宋宊宏宐牢宒宎究穷宍灾良证诂诃戻启帍戺评补初社礿祀祂祃冝诅识诇诈诉罕诊诋诌邲吢词诎诏诐译诒(乛)君灵即层杘屁屃尿尾迟局戼弡刡改攺张刜弞忌弝际陆阷阹阿陃壯孜妝陇孞陈岊阽妛阻阼陁附坠阾阺陀阸陂陉妦妍妌妋妧妩妘姉妓妚妪姖妣呄妙妕妠妊妖妡妎妗妢姂妐姊妏妔妨妫妒妉妜妞妑姒妤努刟卲邵劭盁忍刭劲甬刣邰矣夋鸡纬纭驱纮纯纰纱驲纲纳纴驳纵纶纷纸纹纺纻驴纼纽纾糺災【八画】(一)邼劻耓奉玤玨玞玩玮环玡玭珁武青靑责现玝玫玠玪玢玜玱玥表玬玣玟玦玧甙盂郉汬烎刱忝昋规匦拝抺抹長刲卦邽劸抾坩拑抴邿坷抲抦坯抷坧拓抪垅拢坺拔拋坪抨拣拤坫拈垆尭坦坥担抯坤押抻抽坱抧抰拀郆劼拐抩垇坰垁抶拃拖坵拞坿拊者拍顶坼拆乴坬坴垀抮夌坽拎拥坻抵坸拘拠势垉抱拄拡垃拉拦幸坢拌坾拧坹坨拕抭坭抳垊抿坲拂拙招拁坡披拨择弆拚坮抬迲刼亞坶拇坳拗耵刵其耶取苿茉苷苦苯昔苛苪苤若茂茏茇苹炗迣苝苫苜苴苗苖英苢苒苘苬苼苵苲茊茌苻苮苩苽苶苸苓苚茚茋苟茐茆苳茑茒苑苞苙范苧茓茔苾茕直苨苠苐茀苰茁苕茄茎苔茅苺苭枉枅枎杬枟林杮枝杯枤枢枥枙柜枒杶枇枑杫杪枏杳枘枧杵杽枆枡枖枚枨杹析枛板枍來枞枔枌柉松枩枪枂枠柹杴枫枬枃枊杸构杭枋枓杰述枦枕杺杻杷杼丧刯軋東乶或画叀卧臥臤忢事尀刺兩枣雨廼協卖厓厔矸矼矹郁矺矻矽矾砐矿矷砀码靣厕厒奈刳郀奔奇匼奄奋奃奅态瓯欧殴豖垄劽殀歽歾殁歿郕刾郏疌妻轰顷转轭斩轮软旾戔枈兓毞炁到郅鸢瓲瓱瓪瓰(丨)非叔歧歫歨歩肯齿些羋卓奌迠卥肻虎虏肾贤尙毟尚坣盰盱旺具昊昙味杲果呩昁盵昃盳昛旽昆咑国呿咁呭哎咕呠畃迧昍昌冐門呵咂畅旿咗昇呸咘昕昄昑昐昖明昒易欥咙昀昂昗旼旻昉昘呯炚炅昈咔畀畁囸呫甽畂虰甿虲虮虯虭迪典固忠呾咀呷呻黾呺丳呮咉呪咒郘呥呬呹咋咊咐咃呱呼呤呧呴咚鸣咆呟咛咜呝咇咏呞呢呡咈咄呶咖咍呣呦咝帓岵岢岸岯岩帗岼岽岾帖罖罗岿岨岬岫峀岟帜岲帙岞岝岴岶帕岭岺岻岣峁刿峂岦岤岮廻迥岷剀岪凯岹岧岥帔峄峅岰囷囶沓沝败账贩贬购贮囹沀图岡罔囻咼囼(丿)钍钎钏钐钓钒钑钔钕钖钗邾制缷幷知迭氜氝氛忥迮牫垂牪牦牧牬物牨牥乖刮舏秆和秈秊秅秇秄季委竺竻秉迤侙侀佳侍佶岳侤佬佴供姇使侢価佰侑侟侕侉例侠臾兒侇侥版侄垈岱帒郔佌侦侊侣侗侃佪侧侏侁凭侹佸侨侐侜佺侩佮佻佾佩佹侚货佭佲佫俢侈隹侂侪佼依佽侅侫佯併侎侘侒侬侓郋帛卑的迫佷侭阜卹侞侔质斦欣郈劶征徂徃彾彽往爬彿彼径所郍舠瓝佱舍金釒刽郐舎刹侖郃命肴郄肏斧怂爸尩采籴觅受爭乳飠侌贪欦念瓫贫攽炃忿枀瓮忩戗肨肼肤朊肺肢肧肰肽肱肬肫肶肿肭胀肵肸肹肣朌朋胏肳肷股肮肪肥服胁周剁凮昏迩郇鱼兔狋匋狜狉狘臽狚狙狎狌狏狛曶狐狑忽狝狗狍匌狞狖狔狒狓狕肦咎迯备夝匊卶炙枭妴饯饰饱饲饳饴(丶)迬冽变京享冼庞店夜庘庙府底庝庖疞疘疜疛疟疠冾疝疙疚疡斉剂卒郊効忞兖庚废净乵竎咅竏妾冿盲瓬放斻刻斺於郂劾育氓闸闹劷郱奍郑券劵卷並籵籶单炐炜炑炋炬炖炒炇炛炘炍炌炂炝炊炈炞炆炕炏炎炓炉炔炄沬沫沶浅泟泋法泔泄沽泍沭河沰泷沷泙泧沾泸乷泹泪沮沺油泱況泂泅泗泩泆泎沲泭泊泝泒泘沴泠泜沵泺沿泃泖泈泡注泣泫泮泞泬沱泻泌泳泀泥泦泯沸泓泏沼泇波泼泽泾治泑怽怔怯怈怙怵怲怌怖怦怴怗怛怚怞怾怏怳怬性怢怍怕怜怟怐怉怰怑怭怺怩怋怫怓怊怶怿怪怡怮畄鼡峃学実宝宗定宕宠宜审宙官穻空帘穸穹迱宛宔实宓宖诓诔试剆郎勆诖诗诘戾肩房诙戽诚郓衦衧衬衫衱衪衩祆祎祉祌视祍祅祈祄祇祋祊诛诜话诞诟诠罙诡瓭询诣沊诤该详冞诧诨诩(乛)建肃录隶帚孠屆屉居屇届刷鸤迡屄屈矤弣弧弤弥弦弢弨弪承孟陋牀狀戕陌陏陑斨孤陓孢陕孡旹亟陎陒降陊函陔限卺乸妹妺姃姏姑妸妬妭刴妲姐妽妯姎姌姍姓妷妰姀姈妳姁姗妵妶姅妼妮姄妱始帑弩孥驽姆虱迢迦巶妿驾皯迳叁参迨劺癷艰亝叕线绀绁绂练彔驵组绅细驶织驷驸驹终驺绉驻绊驼绋绌绍驿绎经骀绐贯毑糽糾糿糼孧甾【九画】(一)砉耔契贰奏春帮珏珐玵玴珂珑玶玷珇玾珅珃珄玳珀顸珍玲珎玽珊珋玸玹珌珉玿珈玻珆毒型沗匧兘韨垹挷拭壵垚挂封持奊拮拷挕垬拱垭挜挝垣挋拺拪拵项垮挎拻垯挞挒城挟挗捓挠垤挃垰挊政赴赵赳赲桒贲挘垙挄垱挡拽垌捛挏壴迼哉垲挺括挢垘埏挻拰郝垍乽垖垧垢垳挀耇耉拴垥拾垗挑巬垛挆垝指垫垎挌垑拸埩挣挤挍垴挔垓垟垪拼垨垞挓挖垵按挥垏挦挪垠拫拯逇巭垜挅拹挧叝拶某甚荆荊茙茥荖羐茿茸荁革茞茦茜茬荐荋荂荙巷荗茢荿荚枼荑贳荛荜荎茮茈茪带草茰茧莒茼茵茴荝茱莛荞茠茯茷莚茽荏茩荇荃荟茶荅荕荀荈茗茖茤荘荠茭茨荒荄茺垩荓茳茫荡荢茡荌荣荤荥荦荧茟荨乹茛瓳故荩胡兙剋勀勊怘荪荍荫茹茘荔南荬荭荮药茲枺标柰栈柾枿桏柑枻枯栉枾柯柄柸柘柨栊柭柩枰栋枮栌柦相柤查査柙柛枵柚枳柍柷枴柺柟柵柶栍柣柞柇柂柎柏柝栃栀柧柗柃柢栎枸栅柳柊栁桞枹柱柿柆栏柈柠柼柁怸柲栐柌柅柫柮柖枷柀柽树枱柕栂柪怷郣勃軌郙郠匽専剌栆勅畐郚剅郖垔要酊迺郦柬厙咸厖威歪盃甭研頁砆砖厘砈迶砗厚砑砘砒砌砙砋砂砅泵砚厛斫砎砛砏砭砕砍砜砃砓砇砊砄面耐耎耏耍奎耷厗郟奓奒盇羍昚牵鸥虺卼尯残迾姴殂殃殅殇殄殆尮轱轲轳轴轵轶匨轷轸轹轺轻匩鸦虿皆毖剄勁(丨)韭背茍呰姕貞战敁觇点虐临览竖尜尛省削尝盽盶眃哐昧昩眄狊眍盹昰是昻郢昮眇昞昺眊盺眅盻則昦郥盼眨眀眂昜昽盷盿眆眈県哇咭咾哋咠咡哄哑显冒咺閂閁映禺昷哂甠星昳昨咟哊咵昣咴哒昤昫曷昴咧昸昿昱昡昹昵昲咦昢哓昭哔咥昪畊畉畎畏毗毘趴呲胃冑胄贵畋畈畍界畇虷虶虹虾虴虼虳虻蚁虸虵思蚂盅咣咢剈虽品哃咽迵骂哕剐郧勋哖咮咶咻唌哗咱囿咿响哘哌哙哈咷哚咰哅哛咯哆哜咬咳咩咲咪咤咹哝哪哏哞哟峙峔峘峟帞峏耑峚炭峢峛峸峡峓峫峣峌峠廽罘帧罚峒峝峤峑峆峇帢峜峗峞峋峈峉峥峕峧峐帡峖峍迴峎贱沯贴畓贶泴圀贻骨幽(丿)钘钙钚钛钜钝钞钟钡钢钠钣钤钥钦钧钨钩钪钫钬钭钮钯卸乗缸拜看矩矨怣矧氞毡氠氡氟氢牯牱怎牰郜勂牭牲牴选牳适臿秐秓秬秕秒香种秏秗秎秖秭秔秋科重复竿竽笁竼笂笈笀竾笃勄俦段侾俧俨俅怤侼俥俌便俉侸俩俪侲俖俠俫舁帠叟垡柋贷牉牮牊俓顺修俏侱俣俔俚保俜促侽侶俁俋侺俈俄俐俬侮俆俙俭侳俗俘俀俛俇係信侻俤俒俕俍皇鳬皍泉敀侰皈卽鬼侵皅禹侯侷峊帥追衂逈怹俑俟俊盾垕逅衎徍待徔徆徊徇徉爮衍律很後须乺舡舢舤舣叙釓釔剎俞弇兪郗剑侴逃剉俎爼卻郤爰爯郛食瓴兺盆鸧胠朑胢胚胧胈胓胨胩胋胪胆胛胂胑胦胜胅胙胣胕胉胍胗朎胝朐胞胘胖脉胒胇朏胫胎胟鸨匍矦負迿敂斪欨勉奐狨狤狫狟狭狮独風狪狦狧狿甮狯狣怱狥狢狰狡飐飑狩狱觓觔狠狲訇訄胊胐逄昝迻粂夈贸怨急饵饶炰蚀饷饸饹饺饻胤饼(丶)計訂訃訅訆殶凁峦変弯孪娈将奖亰畒畆亯哀亭亮庤度庢庛亱弈奕帟迹庭庥庣凃疬疣疨疪彥疥疭疺疮疩疧庡疯疫疢疦疤兗庠庰凂垐咨姿亲攱竑竗音竒竓竔彦竕飒竐帝衁斾斿施乻旀玅闺闻闼闽闾闿阀阁阂差羏养羗美羑姜迸剏叛帣送巻弮籿类粀籼粁籷籺迷籸籽籹娄籾前酋首逆兹总炡炢炣炳炻炦炼炶炟炠畑炽炴炾炯炸秌炧炿烀炩烁炵炮炷炫烂炨炥炪炤烃炲剃為洭洡洼洔洁洘洱洪洹洅洓洒洦洧洊洏洿洃洌浃柒洟浇洷泚浈浉洸洩浊浀洞洇洄测洙洗涏活洑浌涎洎洢洫洉洐派洀洤浍洽洮洕染洬洈洵洶洚洺洛浄乼洂浏济洨浐洋洴浂洣洲洝浑浒浓津浔泿浕洆洳洠恇恜恸恃恄恅恾恒恓恆恹恠恗恢恞恎恍恫恛恺恻恬恘恤恦恮恰恡恌恱恑恂恉恟恪恀恔恼恲恽恨恊恈举単栄泶觉宣宦宥宬室宫宪穽穼突穿窀宨窃窂穾窆客宩叜诪诫冠郞诬軍语扂扁扃衭袆衼衵衻衶衲衽袄衸衿衯衳衹袇袀衴袂祙祛祜祏祐祓祖神祝祑祚祔诮祗祢祕祠祒误诰诱诲冟诳鸩说昶诵诶(乛)郡垦退既叚屍屋屌昼咫屏屎弭弫昬敃盄费巺陦陡逊陣陠韋陙牁眉胥陜陝孩孨巼陛陘陟陗陧陨凾芔欪陞除险陥埅院巹陖姸娀娃姞姥娂娅姮姫姷姱娍姨娆姪姯姛帤姻姩姝姺娗姡娇娫姙姠娰姤姾姶姚姵姽姰姳姼婙姣姟姘姹姲娜姧姦姢拏怒架贺毠欩飛姭盈怼羾羿貟覌枲勇勈瓵炱怠癸発癹蚤柔敄矜垒绑绒结绔骁绕绖骃骄骅绗绘给绚彖绛骆络绝绞骇统骈骉蚃紆紅紂紇紃約紈級紀紉紁【十画】(一)耕耘耟耖耗耙艳栔洯挈恝泰秦珡珪珯珥珙珬珛珔顼珹琊玼珖珰郬珚珠珤珗珽珦珩珘珨珧珮珟珣珞琤珓珫珜班珱珲珒珢敖珕珝素冓匿祘唜栞蚕顽盏匪挵髟镹捇恚埖捞栽捄挬捙埔捕埂挭捒捂馬振埉挾载挳埗捗赶赸起枽盐捎垾捍埕挰捏埘貢垻垷挸捑埋捚捜捉捆埍捐埙埚损欯袁挹捌埁埛捁挿耊挴捠都埑哲逝娎耆耄捈勎捡挩挫埒埓捋垺捊挼换挽埆捔埄捀贽挚热恐捣垿垶捝烖挮挱垸捖埌壶捃埐揤捤挶埇捅唟盍埃挨埈捘紥耺耾聀耻耼毦剘耹聁耿耽恥郰聂華荴莏莰荺茝荰莕莁莍荸莗剒莆莄荳莤莀鄀恭拲莢莽莱莲莖荹帯莦莳茣莫莧莇荲莡莮莴荶莂莔莪莉莠莓荷莜莋莅莵菦荼莃莶莝莩荽莟莬获莸荻莥莑莘莣晋恶莌莯菃莎莈莐莞莹莨莺真倝莙莭畞巸荱尅兛鸪莊莻荵荾莼框梆桟栻柡桂桔栲栳栮栱桠郴桓栕栜栖栢栯栫栭桍栵桋桡桎桛桢桄档栧梠桐栶桤株梃栝桥栴栿桕栰梴栣桦桘桖桁栓桧桃郲勑桅栒栺桝栙格栘棦栬栤桩校栨核样栟栚栦桜桉桪梛根桗栛栩桙桚逑索軒軑軏軎軕軓連軐軔尃逋彧曺哥恵速逜鬲豇逗剚栗贾覂敇酐酑酎酌逎配酏彨逦翅辱唇厝烕厞孬砡砞夏砝砹砵砢砸砺砳砰砧砠砷砟砤砶砼砱砽砥砾砲砫砿砬砯砣砨砩础破硁唘砪恧厜原套剞剦眘豗匫逐剢砻烮烈殊殈殉盋肂翃顾郪轼轾轿辀辁辂较鸫顿趸剗毙粊致貣晉袃瓸逕(丨)剕鬥敊歭歬龀柴赀桌逌卨鸬虔虑监丵紧覍帰逍党眛眜眎眐眪眬眓晆時哢唛逞畢晎晅眒眏眖晒眣晇財眕貤眡眗覎晠晟眩眫眝眿眤眠晓眧晊眙眑唗唝哧哳哮唞唠鸭晄晃哱唓冔閅哺哽閃閄唖唔晍哣唡唒晔晌晑晀晁唊剔哤曻晈晐晏晖晕鸮哶趶趷趵趿畕畘畖畛畟蚌蚟蚈蚨蚖蚞蚑蚘蚅蚷蚜蚍蚎蚦蚛蚋蚬畔蚝蚚蚧蚥蚙蚡蚣蚏蚔蚒蚐蚊蚢蚄蚪蚇蚗蚓蚆哨唢哻唄員哯哩圃哭戙哫圄唈哵哠哦唎唀哬唕唣唋唏欭恩盎唑唂鸯哷哹哸唅唤圂唙唃唁哼唥唴哾唦唍哰哴唚唧啊唨唉唆帱崋崁崂峬峺峿豈帪峽崃逥罡罢罟眔罝罛罜罠罞峭帩峴埊峼峨峩峲峳崄峪崅峰峯訔峷帨峵崀峮圆觊峻贼贿赂赃赅赆圁剛剮(丿)钰钱钲钳钴钵钶钷钸钹钺钻钽钼钾钿铀铁铂铃铄铅铆铇铈铉铊铋铌铍铎眚甡缻缼缹缺毧氩氥毢氤毨毥氦氧氣毩氨毪特牺郵造牷牸埀乘敌舐秣秙秫秠秡秤秥租秞积秧盉秩秨秝秢秪称剓秚秘秜秛透秮谸笄笎笌笓笍笕笔笑笊笅笒笫笏笉笇笐笋笆笖俸倵倩债俵倀偖倰倖屔俹倛倻借偌偀值値倈倯烋恷倲倳倆倷倴倚俺倢郳倾俴倒俳俶倬俿條倏脩倐倘倶俱倮倱倡們倎個候倂倁栠倕赁恁俰倭倪倠俾俽倽倫倹倄倸倊倗俷倜倃俻隼隽隻倞俯倅俲倍倿倣俼倦倓倧倌倥倇皌臬健臭射皋躬息島畠郫皊烏倨倔師衃欰衄恖逓颀衏徒徕衐虒徑徏徎徐垼従殷舦舭舯舰舨舧舩舱般航舫舮舥瓞瓟峹途針釘釗釙釟釞釠釚釕釖釛釢殺敆拿剣欱郩釡釜夎耸逧爹舀爱豻豺豹奚鬯倉飣飤飢衾鸰颁蚠颂毤翁胿胹胯脄胰胵胱胴胭朒脌脡脠胻脈脍脎朓脆脂胸胮胳脃脏脐胶脑胲羘胼朕脒胺脓脇郮匎鸱虓玺眞鱽鸲烉逛狾狹狵狴猂狽狸狷猁狳狶猃狺猐逖猀狼胷觙卿峱狻逢脁桀夞洜敋鸵留袅眢盌鸳皱饽饾芻饿馀馁馂(丶)凊訐訏訌討訕託訖訓訋訙訉訯這訊記訑訒訍凌凇凍凄衺栾挛恋桨浆衰恴畝凅剠勍衷畗高亳郭庪庨席庫庯庮庬准庩座症疳疶凎疴病痁斊疸疽疻疾痄斋疹痈疷痀疼疱疰痃痆疿痂疲痉蚉剤脊效凈离衮紊唐凋颃栥瓷资恣凉站竜剖竞部勏竛竘竝竚旁旆旊旄旂旅旃欬畜玆阃阄訚阅阆羒羖羞羓羙羔恙瓶剙桊牶拳勌粏粔粃粆粍敉粄粉粋粅粇料粐粎粌粈粑益兼朔欮郸烒烓烤烘烡烵烞烜烥烠烦烣烧烛焒烔烟烍烶烌烻烨烅烆烐烇烩烚烑烙烄烗烊烪剡郯烢烬递涛浾浙涍涜淽淓涝洍涁浗浡浦浭涑浯浢酒浱浹浝涞涟浳涇涉逤娑消涆浧涅浿洖涀浬涠涄浞涃涓涢涡浥涔浻浩涐浰海浜浟涖垽峾涂浠涗浴浖浮浽浛涣浼浲涤浵涥流润涧涚涕浺浣浨涋浤浶浪涙浫涒浸浘涨烫涩涊涌涘浚悈悖悑悚悟悏悂悭悄悍悜悮悓悝悃悁悞悒悎悧悔悇悕悅悗悙悋悯悦悌悩悢悀悛挙鸴害宼宯宽宧宸家宵宲宺宴宮宾宱窍窉窅窄宷窊容窌窎窇窋窈剜宰宭案宻请冦冡朗欴诸冣诹诺冧读扄扅扆肁冢诼扇诽袜袪袣袔袏袥袚袩袒袓袖袡袟袮袘袝袙袗袊袛袧袍袨袢袕袉袐袦袑被袯袎祮祬祯祩祣祫祧祪祥祤课冥诿谀隺谁谂调冤谄谅谆谇谈谊谉(乛)書剥帬恳堲叞展剧屒屑屓屗屘屐屖屙弬弳弰弲弱陚陼陸陵陬孭陳娿勐弉奘娤陭疍牂孫陫蚩祟陲陹陮陴陯険陰陶陷陱陪脀烝娡婲姬娔娕娪娠娝娏娙娋娨娱娊娌桇娉娖娚娟娲挐恕娯娛娥娳娒娦娐娞娢娩娮娴娧娣娘娓婀恏砮娭哿皰脋脅奙畚翄翀毣翂翆通能圅逘难逡预矝務斚桑剟绠骊剝绡骋绢绣验绤绥绦骍继绨骎骏郷紜紑紎紘紌純紕紗納紝紤紒紟紛紣紙紋紡紏紞紖紐紦紓邕鸶【十一画】(一)彗剨耝耜耞耚耛焘邫舂琎球珸琏琑琐珵責珼現理珿琄琌珴琍琇琁珻琋琈琀琒麸琂珳琉琷珶琓琅珺匭貮規埲捧埥掅掭瓺镺掁掛堵堎。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

sqlserver:整理一下SQLSERVER的排序规则疯狂代码 / ĵ:http://DataBase/Article68892.htmlSQL SERVER排序规则平时使用不是很多也许不少初学者还比较陌生但有个大家应是经常碰到: SQL SERVER数据库在跨库多表连接查询时若两数据库默认集区别系统就会返回这样:“无法解决 equal to 操作排序规则冲突”.分析: 这个是排序规则不致造成我们做个测试比如:create table #t1(name varchar(20) collate Albanian_CI_AI_WS,value )create table #t2(name varchar(20) collate Chinese_PRC_CI_AI_WS,value )表建好后执行连接查询:select * from #t1 A inner join #t2 B _disibledevent=>这样就出现了:服务器: 消息 446级别 16状态 9行 1无法解决 equal to 操作排序规则冲突 要排除这个最简单思路方法是表连接时指定它排序规则这样就不再出现了语句这样写:select *from #t1 A inner join #t2 Bon = collate Chinese_PRC_CI_AI_WS2.排序规则介绍:什么叫排序规则呢?MS是这样描述:"在 Microsoft SQL Server 2000 中串物理存储由排序规则控制排序规则指定表示每个位模式以及存储和比较所使用规则" 在查询分析器内执行下面语句可以得到SQL SERVER支持所有排序规则 select * from ::fn_helpcollations排序规则名称由两部份构成前半部份是指本排序规则所支持集如: Chinese_PRC_CS_AI_WS前半部份:指UNICODE集Chinese_PRC_指针对大陆简体字UNICODE排序规则排序规则后半部份即后缀 含义: _BIN 2进制排序 _CI(CS) 是否区分大小写CI不区分CS区分 _AI(AS) 是否区分重音AI不区分AS区分 _KI(KS) 是否区分假名类型,KI不区分KS区分 _WI(WS) 是否区分宽度 WI不区分WS区分 区分大小写:如果想让比较将大写字母和小写字母视为不等请选择该选项区分重音:如果想让比较将重音和非重音字母视为不等请选择该选项如果选择该选项比较还将重音区别字母视为不等区分假名:如果想让比较将片假名和平假名日语音节视为不等请选择该选项区分宽度:如果想让比较将半角和全角视为不等请选择该选项3.排序规则应用: SQL SERVER提供了大量WINDOWS和SQLSERVER专用排序规则但它应用往往被开发人员所忽略其实它在实战中大有用处 例1:让表NAME列内容按拼音排序:create table #t(id ,name varchar(20))insert #t select 1,'中'union all select 2,'国'union all select 3,'人'union all select 4,'阿'select * from #t order by name collate Chinese_PRC_CS_AS_KS_WSdrop table #t/*结果:id name----------- --------------------4 阿2 国3 人1 中*/ 例2:让表NAME列内容按姓氏笔划排序:create table #t(id ,name varchar(20))insert #t select 1,' 3'union all select 2,'乙'union all select 3,' 2'union all select 4,''union all select 5,'十'select * from #t order by name collate Chinese_PRC_Stroke_CS_AS_KS_WS drop table #t/*结果:id name----------- --------------------42 乙3 25 十1 3*/4.在实战中排序规则应用扩展 SQL SERVER汉字排序规则可以按拼音、笔划等排序那么我们如何利用这种功能来处理汉字些难题呢?我现在举个例子: 用排序规则特性计算汉字笔划 要计算汉字笔划我们得先做准备工作我们知道WINDOWS多国汉字UNICODE目前收录汉字共20902个简体GBK码汉字UNICODE值从19968开始 首先我们先用SQLSERVER思路方法得到所有汉字不用字典我们简单利用SQL语句就可以得到:select top 20902 code=identity(,19968,1) o #t from syscolumns a,syscolumns b 再用以下语句我们就得到所有汉字它是按UNICODE值排序: select code,nchar(code) as CNWord from #t 然后我们用Select语句让它按笔划排序select code,nchar(code) as CNWordfrom #torder by nchar(code) collate Chinese_PRC_Stroke_CS_AS_KS_WS,code结果:code CNWord----------- ------1996820008 丨20022 丶20031 丿20032 乀20033 乁20057 乙20058 乚20059 乛20101 亅19969 丁.......... 从上面结果我们可以清楚看到笔汉字code是从19968到20101从小到大排但到了 2笔汉字第个字“丁”CODE为19969就不按顺序而重新开始了有了这结果我们就可以轻松用SQL语句得到每种笔划汉字归类第个或最后个汉字下面用语句得到最后个汉字:create table #t1(id identity,code ,cnword nvarchar(2))insert #t1(code,cnword)select code,nchar(code) as CNWord from #torder by nchar(code) collate Chinese_PRC_Stroke_CS_AS_KS_WS,codeselect wordfrom #t1 Aleft join #t1 B _disibledevent=>where B.code is nullorder by A.id得到36个汉字每个汉字都是每种笔划数按Chinese_PRC_Stroke_CS_AS_KS_WS排序规则排序后 最后个汉字:亅阝马风龙齐龟齿鸩龀龛龂龆龈龊龍龠龎龐龑龡龢龝齹龣龥齈龞麷鸞麣龖龗齾齉龘 上面可以看出:“亅”是所有笔汉字排序后最后个字“阝”是所有 2笔汉字排序后最后个字......等等 但同时也发现从第33个汉字“龗(33笔)”后面笔划有些乱不正确但没关系比“龗”笔划多只有 4个汉字我们手工加上:齾35笔齉36笔靐39笔龘64笔建汉字笔划表(TAB_HZBH):create table tab_hzbh(id identity,cnword nchar(1))--先插入前33个汉字insert tab_hzbhselect top 33 wordfrom #t1 Aleft join #t1 B _disibledevent=>where B.code is nullorder by A.id--再加最后 4个汉字identity_insert tab_hzbh _disibledevent=>select top 1 idfrom tab_hzbhwhere cnword>=@a collate Chinese_PRC_Stroke_CS_AS_KS_WSorder by idid-----------8(结果:汉字“国”笔划数为8) 上面所有准备过程只是为了写下面这个这个撇开上面建所有临时表和固定表为了通用和代码转移方便把表tab_hzbh内容写在语句内然后计算用户输入串 汉字总笔划:create function fun_getbh(@str nvarchar(4000))sasbegindeclare @word nchar(1),@n@n=0while len(@str)>0begin@word=left(@str,1)--如果非汉字笔划当0计@n=@n+( when unicode(@word) between 19968 and 19968+20901 then (select top 1 id from (select 1 as id,N'亅' as wordunion all select 2,N'阝'union all select 3,N'马'union all select 4,N'风'union all select 5,N'龙'union all select 6,N'齐'union all select 7,N'龟'union all select 8,N'齿'union all select 9,N'鸩'union all select 10,N'龀'union all select 11,N'龛'union all select 12,N'龂'union all select 13,N'龆'union all select 14,N'龈'union all select 15,N'龊'union all select 16,N'龍'union all select 17,N'龠'union all select 18,N'龎'union all select 19,N'龐'union all select 20,N'龑'union all select 21,N'龡'union all select 22,N'龢'union all select 23,N'龝'union all select 24,N'齹'union all select 25,N'龣'union all select 26,N'龥'union all select 27,N'齈'union all select 28,N'龞'union all select 29,N'麷'union all select 30,N'鸞'union all select 31,N'麣'union all select 32,N'龖'union all select 33,N'龗'union all select 35,N'齾'union all select 36,N'齉'union all select 39,N'靐'union all select 64,N'龘') Twhere word>=@word collate Chinese_PRC_Stroke_CS_AS_KS_WSorder by id ASC) 0 end)@str=right(@str,len(@str)-1)end@nend--例子:select dbo.fun_getbh('中华人民共和国'),dbo.fun_getbh('中華人民共和國') 执行结果:笔划总数分别为39和46简繁体都行当然你也可以把上面“UNION ALL”内汉字和笔划改存在固定表内在汉字 列建CLUSTERED INDEX列排序规则设定为: Chinese_PRC_Stroke_CS_AS_KS_WS这样速度更快如果你用是BIG5码操作系统你得另外生成汉字思路方法样但有点要记住:这些汉字是通过SQL语句Select出来不是手工输入更不是查字典得来新华字典毕竟区别于UNICODE集查字典结果会不正确 用排序规则特性得到汉字拼音首字母 用得到笔划总数相同思路方法我们也可以写出求汉字拼音首字母如下:create function fun_getPY(@str nvarchar(4000))s nvarchar(4000)asbegindeclare @word nchar(1),@PY nvarchar(4000)@PY=''while len(@str)>0begin@word=left(@str,1)--如果非汉字返回原@PY=@PY+( when unicode(@word) between 19968 and 19968+20901 then (select top 1 PY from (select 'A' as PY,N'驁' as wordunion all select 'B',N'簿'union all select 'C',N'錯'union all select 'D',N'鵽'union all select 'E',N'樲'union all select 'F',N'鰒'union all select 'G',N'腂'union all select 'H',N'夻'union all select 'J',N'攈'union all select 'K',N'穒'union all select 'L',N'鱳'union all select 'M',N'旀'union all select 'N',N'桛'union all select 'O',N'漚'union all select 'P',N'曝'union all select 'Q',N'囕'union all select 'R',N'鶸'union all select 'S',N'蜶'union all select 'T',N'籜'union all select 'W',N'鶩'union all select 'X',N'鑂'union all select 'Y',N'韻'union all select 'Z',N'咗') Twhere word>=@word collate Chinese_PRC_CS_AS_KS_WSorder by PY ASC) @word end)@str=right(@str,len(@str)-1)end@PYend--例子:select dbo.fun_getPY('中华人民共和国'),dbo.fun_getPY('中華人民共和國')结果都为:ZHRMGHG 你若有兴趣也可用相同思路方法扩展为得到汉字全拼甚至还可以得到全拼读音声调不过全拼分类大多了得到全拼最好是用对照表两万多汉字搜索速度很快用对照 表还可以充分利用表索引排序规则还有很多其它巧妙使用方法欢迎大家共同探讨2009-9-6 22:57:31疯狂代码 /。

相关文档
最新文档