【发布时间】:2010-06-11 02:34:31
【问题描述】:
在 Oracle SQL 中,有一个可能的条件称为 rownum。我可以确认 rownum 将作为返回记录数的限制最终执行吗? 还是可以先执行,然后再执行其他 WHERE SQL 条件(如果我们将 rownum 放在其他条件之前)?
【问题讨论】:
在 Oracle SQL 中,有一个可能的条件称为 rownum。我可以确认 rownum 将作为返回记录数的限制最终执行吗? 还是可以先执行,然后再执行其他 WHERE SQL 条件(如果我们将 rownum 放在其他条件之前)?
【问题讨论】:
它不等同于其他语言中的 LIMIT。如果您计划使用 rownum 限制记录数,则需要在内部子查询 ORDER BY 并在外部查询中使用 rownum。 WHERE 子句中的元素顺序无关紧要。 请参阅 Tom Kyte 的 this excellent article。
是的,在 WHERE 子句中,ROWNUM 总是在所有其他谓词都被求值后最后求值,不管它们的顺序如何。
然而,它在任何 GROUP BY 或 ORDER BY 子句之前进行评估。
【讨论】: