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

宇拖鞋

宇拖鞋

2016-02-19 14:50

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的oracle数据库中关于null排序的问题,过去的都会过去,迎接崭新的开始,释放更美好的自己。
问题描述:

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  问题解决:

  方案1:

  可以使用复杂的使用sql:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
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 rownum2000and ZBRL is null) aunionselect 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 rownum2000and 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 rownum2000and ZBRL is not null order by ZBRL) b)   order by my_sys_rownum desc

  方案2:

  可以利用oracle中可以对order by中对比较字段做设置的方式来实现:

  如: order by nvl( aaa,'-1')

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
oracle数据库中关于null排序的问题

关于oracle配置多个数据库的问题

编程语言 网络编程
关于oracle配置多个数据库的问题

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle 数据库中时间问题比较

编程语言 网络编程
Oracle 数据库中时间问题比较

Oracle 数据库唯一约束中的NULL的处理

编程语言 网络编程
Oracle 数据库唯一约束中的NULL的处理

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Oracle 数据库中创建合理的数据库索引

编程语言 网络编程
Oracle 数据库中创建合理的数据库索引

Oracle数据库数据对象分析(中)

编程语言 网络编程
Oracle数据库数据对象分析(中)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

关于oracle配置多个数据库的问题

关于oracle配置多个数据库的问题

加密的XML

加密的XML
下拉加载更多内容 ↓