實踐中SQL Server排序規(guī)則應(yīng)用的擴展
SQL Server排序規(guī)則相信大家都有一些的了解,下面就為您介紹SQL Server排序規(guī)則應(yīng)用的一些擴展,希望可以讓您對SQL Server排序規(guī)則有更深的認識。
在實踐中SQL Server排序規(guī)則應(yīng)用的擴展:
sql server漢字排序規(guī)則可以按拼音、筆劃等排序,那么我們?nèi)绾卫眠@種功能來處理漢字的一些難題呢?我現(xiàn)在舉個例子:
用SQL Server排序規(guī)則的特性計算漢字筆劃
要計算漢字筆劃,我們得先做準備工作,我們知道,windows多國漢字,unicode目前收錄漢字共20902個。簡體gbk碼漢字unicode值從19968開始。
首先,我們先用sqlserver方法得到所有漢字,不用字典,我們簡單利用sql語句就可以得到:
- select top 20902 code=identity(int,19968,1) into #t from syscolumns a,syscolumns b
再用以下語句,我們就得到所有漢字,它是按unicode值排序的:
- select code,nchar(code) as cnword from #t
然后,我們用select語句,讓它按筆劃排序。
- 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,從小到大排,但到了二筆漢字的***個字“丁”,code為19969,就不按順序而重新開始了。有了這結(jié)果,我們就可以輕松的用sql語句得到每種筆劃漢字歸類的***個或***一個漢字。
【編輯推薦】