Oracle中nlssort()函数排序功能

Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。

设置NLSSORT值即可,且不影响当前会话。

  1. SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
  2. SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
  3. SCHINESE_PINYIN_M 按照拼音排序

SQL代码

拼音 SELECT * FROM 表名 ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_PINYIN_M')  
笔划 SELECT * FROM 表名 ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_STROKE_M')  
部首 SELECT * FROM 表名 ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_RADICAL_M')  

注意:ALTER SESSION SET NLS_SORT=''; //排序影响整个会话

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容