nlssort排序

ALTER SESSION SET NLS_SORT=''; 排序影响整个会话 
Oracle9i之前,中文是按照二进制编码进行排序的。   
    
    在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值     
    
    SCHINESE_RADICAL_M   按照部首(第一顺序)、笔划(第二顺序)排序     
    
    SCHINESE_STROKE_M   按照笔划(第一顺序)、部首(第二顺序)排序     
    
    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') 
忽略大小写:SELECT * FROM TEAM ORDER BY NLSSORT(列名,'NLS_SORT =BINARY_CI') 
1、设置NLS_SORT参数值 
      SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 
      SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 
      SCHINESE_PINYIN_M 按照拼音排序 
2、Session级别的设置,修改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; 
3、语句级别设置排序方式: 
      按照笔划排序 select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M'); 
      按照部首排序 select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M'); 
      按照拼音排序,此为系统的默认排序方式 
      select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M'); 
4、修改系统参数(数据库所在操作系统): 
      set NLS_SORT=SCHINESE_RADICAL_M ; 
       export NLS_SORT (sh) 
       setenv NLS_SORT SCHINESE_RADICAL_M (csh) 
      HKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win注册表) 
 1     <select id="EquipmentList" parameterType="java.util.HashMap" resultMap="resultSimDevInfoMap">
 2         select * from 
 3         (
 4             select A.*,rownum RN from
 5             (
 6               SELECT t.dev_id,t.dev_name,t.mac_addr,t.org_id,get_org_name(t.org_id) org_name FROM bsec_dev_info t
 7               <where>
 8                t.IS_ENABLED=1 and t.IS_DELETED = 0 
 9                and t.org_id in (SELECT ORG_ID FROM SYS_ORG  START WITH ORG_ID = (select t.org_id from SYS_USER t where t.user_id=#{userId,jdbcType=NUMERIC}) CONNECT BY PARENT_ID = PRIOR ORG_ID )
10                   <if test="devName !='' and devName !=null">
11                       and t.dev_name like '%'||#{devName,jdbcType=VARCHAR}||'%'
12                   </if>
13               </where>
14                order by NLSSORT(t.dev_name,'NLS_SORT = SCHINESE_PINYIN_M')
15                 ) A
16         ) 
17         where RN between #{pagination.startIndex} and #{pagination.endIndex}
18     </select> 

 



转载于:https://www.cnblogs.com/s-d-g/p/8660010.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值