欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle使用order by排序null值如何处理

程序员文章站 2024-02-09 23:28:46
适用情况: oracle 对查询结果进行排序时,被排序的栏位存在null值,且要指定null值排在最前面或者最后面 关键字:nulls first;nulls last 默...
适用情况
oracle 对查询结果进行排序时,被排序的栏位存在null值,且要指定null值排在最前面或者最后面

关键字:nulls first;nulls last

默认情况:null 默认为最大值(即:asc 升序<小-->大>,null值排在最后;desc 降序<大-->小>,null值排在最前面)

指定
1.oracle order by支持的语法
2.指定nulls first 则表示null值的记录将排在最前(不管是asc 还是desc)
3.指定nulls last 则表示null值的记录将排在最后(不管是asc 还是desc)

语法举例:(table:tab_a 有部分空值的栏位col_a)
select * from tab_a order by tab_a. col_a (asc/desc) nulls first------>null 值排在最前面
select * from tab_a order by tab_a. col_a (asc/desc) nulls last ------>null 值排在最后面

其他方法
在order by 的时候,用nvl、nvl2 、decode、case .....when....end;等函数对栏位的null值进行处理
例如:select * from tab_a order by nvl(tab_a. col_a,'abc' ) (asc/desc);