實(shí)踐中SQL Server排序規(guī)則應(yīng)用的擴(kuò)展
SQL Server排序規(guī)則相信大家都有一些的了解,下面就為您介紹SQL Server排序規(guī)則應(yīng)用的一些擴(kuò)展,希望可以讓您對(duì)SQL Server排序規(guī)則有更深的認(rèn)識(shí)。
在實(shí)踐中SQL Server排序規(guī)則應(yīng)用的擴(kuò)展:
sql server漢字排序規(guī)則可以按拼音、筆劃等排序,那么我們?nèi)绾卫眠@種功能來(lái)處理漢字的一些難題呢?我現(xiàn)在舉個(gè)例子:
用SQL Server排序規(guī)則的特性計(jì)算漢字筆劃
要計(jì)算漢字筆劃,我們得先做準(zhǔn)備工作,我們知道,windows多國(guó)漢字,unicode目前收錄漢字共20902個(gè)。簡(jiǎn)體gbk碼漢字unicode值從19968開(kāi)始。
首先,我們先用sqlserver方法得到所有漢字,不用字典,我們簡(jiǎn)單利用sql語(yǔ)句就可以得到:
- select top 20902 code=identity(int,19968,1) into #t from syscolumns a,syscolumns b
再用以下語(yǔ)句,我們就得到所有漢字,它是按unicode值排序的:
- select code,nchar(code) as cnword from #t
然后,我們用select語(yǔ)句,讓它按筆劃排序。
- select code,nchar(code) as cnword
- from #t
- order by nchar(code) collate chinese_prc_stroke_cs_as_ks_ws,code
結(jié)果:
- code cnword
- ----------- ------
- 19968 一
- 20008 丨
- 20022 丶
- 20031 丿
- 20032 乀
- 20033 乁
- 20057 乙
- 20058 乚
- 20059 乛
- 20101 亅
- 19969 丁
- ..........
從上面的結(jié)果,我們可以清楚的看到,一筆的漢字,code是從19968到20101,從小到大排,但到了二筆漢字的***個(gè)字“丁”,code為19969,就不按順序而重新開(kāi)始了。有了這結(jié)果,我們就可以輕松的用sql語(yǔ)句得到每種筆劃漢字歸類的***個(gè)或***一個(gè)漢字。
【編輯推薦】