Oracle中对查询条件进行按拼音/笔画/部首order by排序

 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值即可。

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

 使用方法如下:

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

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

你可能感兴趣的:(#,Oracle,oracle,数据库,sql)