电话:0731-83595998
导航

oracle数据库中关于null排序的问题

来源: 2017-10-17 20:07

  问题描述: 在处理一般的数据记录中,对于数字类型的字段,在oracle的排序中,默认把null值做为大于任何数字的类型,当然对于varchar2类型的字段,默认也是该处理方式,但是客户要求排序的过程中,需要把null的字段默认排在前边(从小-->大)。一般的
order by xxxx,无法解决。

      问题解决:
可以使用复杂的使用sql:

 

select * from (select a.*,rownum as my_sys_rownum from ( select deptid,nvl(BDZNAME,' '),nvl(VOLLEVEL,'0'),ZBRL,nvl(ZBTS, '0'), nvl(FZR,'0'),nvl(DEPTIDDES,' '),nvl(TEL,' '),nvl(RUNSTATEDES,' '), nvl(ADDRESS,' '),BDZID from V_BDZ where rownum< 2000 and ZBRL is null ) a union select b.*,rownum+(select count(*) from ( select deptid,nvl(BDZNAME,' '),nvl(VOLLEVEL,'0'),ZBRL,nvl(ZBTS, '0'), nvl(FZR,'0'),nvl(DEPTIDDES,' '),nvl(TEL,' '),nvl(RUNSTATEDES,' '), nvl(ADDRESS,' '),BDZID from V_BDZ where rownum< 2000 and ZBRL is null )) as my_sys_rownum from ( select deptid,nvl(BDZNAME,' '),nvl(VOLLEVEL,'0'),ZBRL, nvl(ZBTS, '0'),nvl(FZR,'0'), nvl(DEPTIDDES,' '),nvl(TEL,' '),nvl(RUNSTATEDES,' '), nvl(ADDRESS,' '),BDZID from V_BDZ where rownum< 2000 and ZBRL is not null order by ZBRL ) b ) order by my_sys_rownum desc

方案2:
  如:  ……order by nvl( aaa,'-1')

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
拼团课程更多+
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端