oracle 中文排序

2021-08-09 19:13:19 字數 1168 閱讀 5771

1)alter session set nls_sort='';排序影響整個會話

oracle9i之前,中文是按照二進位制編碼進行排序的。

在oracle9i中新增了按照拼音、部首、筆畫排序功能。設定nls_sort值

schinese_radical_m按照部首(第一順序)、筆劃(第二順序)排序

schinese_stroke_m按照筆劃(第一順序)、部首(第二順序)排序

schinese_pinyin_m 按照拼音排序

oracle9i中新增了按照拼音、部首、筆畫排序功能

拼音 select * from team order bynlssort(隊名,'nls_sort = schinese_pinyin_m')

筆劃 select * from team order bynlssort(隊名,'nls_sort = schinese_stroke_m')

部首 select * from team order bynlssort(隊名,'nls_sort = schinese_radical_m')

(2)又如在檢視中查詢獲取道路列表:

ssql = string.format("selectdistinct() from order bynlssort(,'nls_sort=schinese_pinyin_m')", sfielddl, sviewdl);

(3)又如

乙個表中的資料是這樣的:

projectno

欽市pc2010-5

欽市pc2011-6

欽市pc2011-40

欽南pc2011-5

欽南gc2011-5

欽市pc2011-5(還有很多)資料前2個字是市區名,後面的是檔名「-」後面的是第幾號檔案,我想知道如何用sql語句將他們公升序排序,需要先排列市區名,市區名相同了在公升序排列後面的檔名,檔名相同了在排列後面的檔案編號名。

注意:單單用select projectno from dual order by projectno asc是不能實現的。

可使用

select projectno from dual order by  substring(projectno ,1,2) asc 

,substring(projectno ,3,6) asc ,substring(projectno ,9,2) asc

oracle中文排序

oracle中文排序 oracle9i之前,中文是按照二進位制編碼進行排序的。但oracle9以來,oracle的nlssort排序,可以用來進行語言排序,而不影響當前會話 例如按照拼音 部首 筆畫排序功能只需設定nls sort值 一 schinese radical m 按照部首 第一順序 筆劃...

ORACLE 中文排序

oracle9i之前,中文是按照二進位制編碼進行排序的。但oracle9以來,oracle的nlssort排序還是挻有意思的,它可以用來進行語言排序,不影響當前會話 例如按照拼音 部首 筆畫排序功能只需設定nls sort值 schinese radical m 按照部首 第一順序 筆劃 第二順序 ...

關於Oracle中文排序

前幾天時間曾經看見有人提出的中文排序問題,當時有高手用decode解決的。不過如果值太多,畢竟這樣寫比較麻煩。這幾天一直在找關於這方面的例子,其實以前也曾看見過,只是一直未曾用到,也就未加留心,下面把通用的解決方法貼出來,和大家共享之。宣告 以下所做測試,應該在oracle9i 10g以上。orac...