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);
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);
下一篇: mysql替换表中的字符串的sql语句