如何忽略Oracle分析函数中的空值

时间:2015-04-20 13:37:34

标签: sql oracle

此查询:

select BILL_ID, BILL_DATE FROM BILLS

返回以下结果:

bill_id----------bill_date

1943336232      12/03/15

null            null

用这个sql:

select
FIRST_VALUE(BILL_ID) OVER(PARTITION BY ACCOUNT_ID ORDER BY BILL_DT DESC) bill_id,
FIRST_VALUE(BILL_DATE) OVER(PARTITION BY ACCOUNT_ID ORDER BY BILL_DT DESC) bill_date

我明白了:

bill_id----------bill_date

null            null

让我得到的查询是什么

bill_id----------bill_date

1943336232      12/03/15

我尝试添加IGNORE NULLS,但我总是得到两行,请帮助谢谢

PS:这两行显然具有相同的ACCOUNT_ID

1 个答案:

答案 0 :(得分:2)

您可以在NULLS LAST子句中指定ORDER BY选项。

select
  FIRST_VALUE(BILL_ID) OVER(PARTITION BY ACCOUNT_ID ORDER BY BILL_DT DESC NULLS LAST) bill_id,
  FIRST_VALUE(BILL_DATE) OVER(PARTITION BY ACCOUNT_ID ORDER BY BILL_DT DESC NULLS LAST) bill_date
...