oracle函数中文排序

2014-11-24 00:57:16 · 作者: · 浏览: 6

关键字: 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