Дядя Петя |
Не могли бы счастливые владельцы Oracle 7.3 проверить работоспособность двух запросов:
|
На кой такие навороты? Нужно получить первые 15 строк выборки? Так просто напиши запрос с сортировкой без всяких там rownum, а в программе, которая этот запрос выполняет выбери только 15 строк и пронумеруй.
Конечно, сортировка без явного ограничения на размер выборки может занять больше времени, поэтому для 8i и далее лучше применить твои запросы предварительно убрав пару скобок, которые как недавно выяснилось плохо сказываются на плане выполнения.
1)
SELECT rownum r, maintable.* FROM
(SELECT owner, table_name FROM all_tables
ORDER BY owner, table_name) maintable
WHERE rownum <= 15
2)
SELECT rownum r, maintable.* FROM
(SELECT owner, table_name FROM all_tables
ORDER BY owner, LPAD(table_name, 30, '0')) maintable
WHERE rownum <= 15