Oracle分析函式-nulls first/nulls last
阿新 • • 發佈:2018-12-09
select * from criss_sales;
通過rank()、dense_rank()、row_number()對記錄進行全排列、分組排列取值 但有時候,會遇到空值的情況,空值會影響得到的結果的正確性,如下所查。
select dept_id ,sale_date ,goods_type ,sale_cnt ,rank() over (partition by dept_id order by sale_cnt desc) from criss_sales;
我們可以看到部門D01中的銷售數量為NULL的記錄排名居然是第一,這顯然是不對的。
此時,就需要用到nulls last來處理 處理後結果如下:
select dept_id ,sale_date ,goods_type ,sale_cnt ,rank() over (partition by dept_id order by sale_cnt desc nulls last) from criss_sales;
這樣就得到了期望的結果。 nulls first/nulls last可以幫助我們在處理含有空值的排序排列中,將空值欄位記錄放到最前或最後顯示,幫助我們得到期望的結果。