В первой версии вашего запроса вы указали предложение WHERE
после ORDER BY
, что синтаксически неверно.
Вторая версия работает в MySQL, но не в Oracle.
В любом случае вы не можете получить какие-либо строки, когда используете его между.
Вместо этого попробуйте это:
WITH qry AS
(
SELECT full_name, ROW_NUMBER() OVER(ORDER BY full_name) rn
FROM osqs_institution
)
SELECT rn, full_name
FROM qry
WHERE rn BETWEEN 10 AND 20
Если вы не хотите использовать функцию ROW_NUMBER, попробуйте следующее:
SELECT rn, full_name
FROM
(
SELECT full_name, ROWNUM AS rn
FROM (SELECT * FROM osqs_institution ORDER BY full_name)
)
WHERE rn BETWEEN 10 AND 20