关键字: nlssort, 拼音排序, 笔划, 部首
Oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
1. SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
2. SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
3. SCHINESE_PINYIN_M 按照拼音排序
oracle9i中新增了按照拼音、部首、笔画排序功能
用法示例:
拼音
SELECT * FROM TEAM ORDER BY NLSSORT(排序字段,'NLS_SORT = SCHINESE_PINYIN_M')
笔划
SELECT * FROM TEAM ORDER BY NLSSORT(排序字段,'NLS_SORT = SCHINESE_STROKE_M')
部首
SELECT * FROM TEAM ORDER BY NLSSORT(排序字段,'NLS_SORT = SCHINESE_RADICAL_M')
如果需要排序影响整个会话,可以作如下设置:
ALTER SESSION SET NLS_SORT='对应方式';
$:order by nlssort(g.doc_name,'NLS_SORT=SCHINESE_PINYIN_M') asc