日期:2014-05-16  浏览次数:20468 次

oracle函数中文排序
关键字: 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