轉自:https://www.iteye.com/blog/libaxiaoyuan-2199851
Oracle9i之前,中文是按照二進制編碼進行排序的。在oracle9i中新增了按照拼音、部首、筆畫排序功能。
設置NLS_SORT值即可。
- SCHINESE_RADICAL_M 按照部首(第一順序)、筆划(第二順序)排序
- SCHINESE_STROKE_M 按照筆划(第一順序)、部首(第二順序)排序
- SCHINESE_PINYIN_M 按照拼音排序
使用方法如下:
- 拼音 SELECT * FROM 表名 ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_PINYIN_M')
- 筆划 SELECT * FROM 表名 ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_STROKE_M')
- 部首 SELECT * FROM 表名 ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_RADICAL_M')
ALTER SESSION SET NLS_SORT=''; //排序影響整個會話