原文見
漢字排序須綜合考慮資料庫字符集、nls_sort
檢視資料庫字符集:
select userenv('language') from dual;
如果字符集為zhs16gbk/zh16gbk,那麼使用order by預設是按照漢字的拼音順序進行排序的;如果為其他(如utf8),那麼漢字的排序是按照binary排序的。
當資料庫字符集不為中文字符集時可設定nls_sort讓其按照漢字拼音排序
檢視nls_sort,一般為二進位制binary
使用nlssort關鍵字
select co.countryname from t_d_country co order
by nlssort(co.countryname,'nls_sort=schinese_pinyin_m') asc
獲取漢字的拼音碼
select co.countryname, f_trans_pinyin_capital(co.countryname) as counpinyin from t_d_country co order
by counpinyin asc
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 中漢字排序問題
oracle9i對漢字的排序預設為拼音排序,可是本人最近發新排列的結果並不準確,通過上網查詢,現解決方法如下 方法1 設定環境變數 set nls sort schinese radical m export nls sort sh or setenv nls sort schinese radic...