oracle 漢字排序

2021-09-02 09:28:42 字數 938 閱讀 7362

1、使用拼音排序   nls_sort=schinese_pinyin_m

2、使用筆畫排序   nls_sort=schinese_stroke_m 第一順序筆畫,第二順序部首;

3、使用偏旁部首排序    nls_sort=schinese_radical_m 第一順序部首,第二順序筆畫;

這樣,就可以在查詢的時候,指定漢字的排序方式,設定方式可以分為以下三個級別:

1、語句級別設定排序方式:

按照筆劃排序:

select * from table order by nlssort(col,'nls_sort=schinese_stroke_m');

按照部首排序:

select * from table order by nlssort(col,'nls_sort=schinese_radical_m');

按照拼音排序:

select * from table order by nlssort(col,'nls_sort=schinese_pinyin_m');

2、session級別的設定,修改oracle欄位的預設排序方式:

按拼音:alter session set nls_sort = schinese_pinyin_m;

按筆畫:alter session set nls_sort = schinese_stroke_m;

按偏旁:alter session set nls_sort = nls_sort=schinese_radical_m;

3、修改系統引數(資料庫所在作業系統):

set nls_sort=schinese_radical_m ;

export nls_sort (sh)setenv nls_sort schinese_radical_m (csh) 

hklc\software\oracle\home0\nls_sort (win登錄檔);

Oracle漢字排序

使用一下sql t 0303003 bystock holder 進行選取資料時 stock holder為存放中文的字段 結果發現兩庫返回的記錄順序不一致。琢磨之後應該為字符集問題,乙個庫字符集為系統預設字符集,另乙個庫為utf 8字符集。查詢資料後發現,對於中文字段的排序,應該使用以下方式 按拼...

oracle對漢字排序

原文見 漢字排序須綜合考慮資料庫字符集 nls sort 檢視資料庫字符集 select userenv language from dual 如果字符集為zhs16gbk zh16gbk,那麼使用order by預設是按照漢字的拼音順序進行排序的 如果為其他 如utf8 那麼漢字的排序是按照bin...

Oracle 中漢字排序問題

oracle9i對漢字的排序預設為拼音排序,可是本人最近發新排列的結果並不準確,通過上網查詢,現解決方法如下 方法1 設定環境變數 set nls sort schinese radical m export nls sort sh or setenv nls sort schinese radic...