我有一个日期字段,可以null
在Oracle数据库中。
我想选择日期最高的行。但是,如果只有一行带有null
日期,并且我使用max子句,它将被忽略。
SELECT val1, val2
from T_DER
WHERE DATE_AP = ( SELECT MAX (DATE_AP) FROM T_DER WHERE AE= 'XXX')
AND (AE= 'XXX');
因此,在这些情况下:
使用分析功能:
SELECT t.*
FROM (SELECT t.*,
ROW_NUMBER() OVER (PARTITION BY AE ORDER BY DATE_AP DESC NULLS LAST) as seqnum
FROM T_DER t
WHERE AE = 'XXX'
) t
WHERE seqnum = 1;
ROW_NUMBER()
是一个窗口/分析/排序功能,在此处记录。基本上,它为行组分配一个顺序号,其中行由partition by
子句定义,每个组内的顺序由定义order by
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句