ORACLE SQL ROWNUM执行顺序

时间:2010-06-11 02:34:32

标签: sql oracle

在Oracle SQL中,有一个可能的标准叫做rownum。我能否确认rownum最终会被执行,因为只是记录返回数量的限制? 或者它可以在其他WHERE SQL标准之前首先执行(如果我们将rownum放在其他标准之前,那就让它们出现)?

2 个答案:

答案 0 :(得分:4)

在其他语言中,它不等于LIMIT。如果您计划使用rownum限制记录数,则需要在内部对ORDER BY进行子查询,并在外部查询中使用rownum。 WHERE子句中的元素顺序无关紧要。 见Tom Kyte的this excellent article

答案 1 :(得分:3)

是的,在WHERE子句中,在评估了所有其他谓词后,无论其顺序如何,ROWNUM始终是最后评估的。

然而,在任何GROUP BY或ORDER BY子句之前进行评估。