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...