2010-06-11 3 views
3

в Oracle SQL, существует возможный критерий rownum. Могу ли я подтвердить, что rownum будет выполнен, как только предел для количества записей возвращается? или он может быть выполнен первым, перед другими критериями WHERE SQL (давайте, если мы поместим rownum до других)?ORACLE SQL ROWNUM, порядок выполнения

ответ

4

Это не эквивалент LIMIT на других языках. Если вы планируете ограничить количество записей с помощью rownum, вам нужно подзапросить ORDER BY внутри и использовать rownum во внешнем запросе. Порядок элементов в вашем предложении WHERE не имеет значения. См. this excellent article от Tom Kyte.

+0

Ссылка изменена на http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html – Vadzim

2

Да, в рамках предложения WHERE ROWNUM всегда оценивается последним, после того как все остальные предикаты были оценены независимо от их порядка.

Он оценивается перед любыми предложениями GROUP BY или ORDER BY.

Смежные вопросы