适用情况: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值进行处理
以下是网上搜到的2个思路,大体试了一下好像没有达到效果,日后再做研究:
比如有个字段(ID)值为 1,2,3,4,5,现在要把这个字段第四个‘4’排到最后于是乎我可以
select * from test_table
order by decode(id,4,100,id)
或者
select * from test_table
order by replace(id,4,100)
当然不止这两种了,语句中的‘100’保证是你这些值中最大或最小值就行,排序根据需要升序降序(desc),我的语句是属于oracle的,其他数据看数据库找函数,意思就那么样了