Oracle 中漢字排序問題

2021-04-26 01:58:57 字數 624 閱讀 4471

oracle9i對漢字的排序預設為拼音排序,可是本人最近發新排列的結果並不準確,通過上網查詢,現解決方法如下:

方法1: 設定環境變數

set nls_sort=schinese_radical_m ;export nls_sort (sh)

or setenv nls_sort schinese_radical_m (csh)

or regedit  

hklc/software/oracle/home0/nls_sort       (win)

方法2: 在session中修改

alter session set nls_sort='schinese_radical_m'

方法3: 直接使用nlssort函式 (推薦)

select name,id from t

order by nlssort(name,'nls_sort = schinese_stroke_m')

設定nls_sort值:

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

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

schinese_pinyin_m 按照拼音排序

Oracle漢字排序

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

oracle 漢字排序

1 使用拼音排序 nls sort schinese pinyin m 2 使用筆畫排序 nls sort schinese stroke m 第一順序筆畫,第二順序部首 3 使用偏旁部首排序 nls sort schinese radical m 第一順序部首,第二順序筆畫 這樣,就可以在查詢的時...

oracle對漢字排序

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