我在查询从查询返回的数据时遇到了一个小问题,目的是获取数据集中最新的更新值,以便我只能更新该记录。这就是我正在做的事情:
WHERE ROWNUM = 1 AND TABLE1.ID != V_IGNOREID
AND TABLE1.LASTREADTIME = (SELECT MIN(TABLE1.LASTREADTIME) FROM TABLE1)
ORDER BY TABLE1.LASTREADTIME DESC;
是否包含ORDER BY
语句没有区别。如果我只使用ROWNUM和相等检查,我得到数据,但它只在两行之间交替,这就是为什么我试图使用LASTREADTIME数据(这样我可以修改超过这两行)。有人对此有任何想法,或者有关如何有效使用MIN功能的任何建议?
干杯
答案 0 :(得分:1)
select * from (
-- your original select without rownum and with order by
)
WHERE ROWNUM = 1
编辑一些解释
我认为order by
子句适用于where
子句后的结果集。因此,如果rownum = 1
与order by
在同一个select语句中,那么它将首先应用,而order by
将仅排序1行,这将是无序的第一行结果集。