Oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序
修改ORACLE字段的默认排序方式:
按拼音(默认): alter session set nls_sort = SCHINESE_PINYIN_M;
按笔画:alter session set nls_sort = SCHINESE_STROKE_M;
按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;
select * from cc order by nlssort(b,'NLS_SORT=SCHINESE_PINYIN_M');
说明:按拼音字母(英文字母)排序是ORACLE默认的排序方式,除非已经修改过
select * from cc order by nlssort(b,'NLS_SORT=SCHINESE_STROKE_M');
select * from cc order by nlssort(b,'NLS_SORT=SCHINESE_RADICAL_M');