Oracle分析函數-nulls first/nulls last

select * from criss_sales;

經過rank()、dense_rank()、row_number()對記錄進行全排列、分組排列取值
但有時候,會遇到空值的狀況,空值會影響獲得的結果的正確性,以下所查。spa

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的記錄排名竟然是第一,這顯然是不對的。code

此時,就須要用到nulls last來處理
處理後結果以下:blog

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能夠幫助咱們在處理含有空值的排序排列中,將空值字段記錄放到最前或最後顯示,幫助咱們獲得指望的結果。排序

相關文章
相關標籤/搜索