oracle汉字默认排序,oracle对汉字排序
漢字排序須綜合考慮數據庫字符集、NLS_SORT。
查看版本信息:
select * from v$version;
查看數據庫字符集:
SELECT userenv('language') FROM dual;
如果字符集為ZHS16GBK/ZH16GBK,那么使用order by默認是按照漢字的拼音順序進行排序的;如果為其他(如UTF8),那么漢字的排序是按照BINARY排序的。
數據庫字符集不為中文字符集的情況下怎樣讓其按照漢字拼音排序?答案是設置NLS_SORT。 NLS_SORT specifies the collating sequence for ORDER BY queries 查看NLS_SORT:
當數據庫的編碼方式為:
查看整個數據庫的:
select value from nls_database_parameters where parameter='NLS_SORT';
查看當前會話的:
select value from nls_session_parameters where parameter='NLS_SORT';
解決辦法:
①:使用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汉字默认排序,oracle对汉字排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息摘要算法-SHA算法实现
- 下一篇: IMT愿景建议书定义的13个能力