Sql 如何在Oracle分析函数中忽略空值
此查询:Sql 如何在Oracle分析函数中忽略空值,sql,oracle,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) OVE
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
?
我尝试添加忽略空值,但我总是得到两行,请帮助,谢谢
PS:两行显然具有相同的帐户ID您可以在
ORDER BY
子句中指定NULLS LAST
选项
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
...
BILLS表中的BILL_ID怎么可能为空?GolezTrol,不是,我简化了查询,它是一个左joinOracle does support子句的结果。我尝试添加IGNORE NULLS,但我总是得到这两行。我对您的最终查询很好奇,因为阅读您的规格、添加、注释和接受的答案,我想你可能已经为自己写了一个非常复杂的内部连接。非常感谢你,尔坎:()()()())()))