oracle對漢字排序

2021-08-04 17:35:23 字數 663 閱讀 5597

原文見

漢字排序須綜合考慮資料庫字符集、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...