SQL:如何选择具有最年轻日期或时间戳的行



我有一个有三列的表,它列出了一个带有内部连接的Select的结果:

SELECT createTimestamp, paymentDate, buyDate
FROM ARC_PAYMENTS 
INNER JOIN PERSON_IN_PAYMENT ON ARC_PAYMENTS.PERSON_ID=PERSON_IN_PAYAMENT.ID
WHERE PERSON_IN_PAYMENT.COMPANY_ID='1234567';

现在,我需要获得所有行的三列中最新/最年轻/最高的值。所以结果应该只有一个Date。这可能会有问题,因为createTimestamp列是时间戳,其他两列是日期。

在oracle数据库中是否有办法做到这一点(性能非常重要)?在另一个选择中使用我的第一个SELECT的结果?

谢谢

查看GREATEST功能

SELECT GREATEST(CAST(createTimestamp AS DATE), paymentDate, buyDate) 
FROM ARC_PAYMENTS 
INNER JOIN PERSON_IN_PAYMENT ON ARC_PAYMENTS.PERSON_ID=PERSON_IN_PAYAMENT.ID
WHERE PERSON_IN_PAYMENT.COMPANY_ID='1234567';

最新更新