nlssort函数的作用是对字段排序,字符串类型的
Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。
1.按拼音排序:
select * from MEMBER t order by NLSSORT(t.b,'NLS_SORT = SCHINESE_PINYIN_M')
2.按笔画排序:
select * from MEMBER t order by NLSSORT(t.b,'NLS_SORT = SCHINESE_STROKE_M')
3.按部首排序:
select * from MEMBER t order by NLSSORT(t.b,'NLS_SORT = SCHINESE_RADICAL_M')
---------------------------------------------------------------------------------------------------------------------------------
设置NLS_SORT值即可。
SCHINESE_RADICAL_M按照部首(第一顺序)、笔划(第二顺序)排序SCHINESE_STROKE_M按照笔划(第一顺序)、部首(第二顺序)排序SCHINESE_PINYIN_M按照拼音排序
使用方法如下:
拼音SELECT*FROM表名ORDERBYNLSSORT(排序字段名,'NLS_SORT=SCHINESE_PINYIN_M')笔划SELECT*FROM表名ORDERBYNLSSORT(排序字段名,'NLS_SORT=SCHINESE_STROKE_M')部首SELECT*FROM表名ORDERBYNLSSORT(排序字段名,'NLS_SORT=SCHINESE_RADICAL_M')
ALTER SESSION SET NLS_SORT=''; //排序影响整个会话