我有一个带有两列ID和START_DATE的Oracle表,我想运行一个查询来获取具有最新日期的记录的ID,最初我写了这个:
select id from (select * from mytable order by start_date desc) where rownum = 1
有更清洁有效的方法吗?我经常在SQL中遇到这种模式,最终创建一个嵌套查询。
答案 0 :(得分:1)
SELECT id FROM mytable WHERE start_date = (SELECT MAX(start_date) FROM mytable)
仍然是一个嵌套查询,但更简单,而且根据我的经验,更加标准。
答案 1 :(得分:0)
这看起来对我来说是一个非常干净和有效的解决方案 - 我认为你没有比这更好,当然假设你有一个start_date的索引。如果你想要所有的ID用于最新的开始日期,那么froadie的解决方案就更好了。