--1: нет метода сортировки ORDER BY. (самый эффективный) ­
--(После тестирования этот метод имеет самую низкую стоимость, только один уровень вложенности и самую высокую скорость! Даже если объем запрашиваемых данных велик, это практически не влияет, а скорость остается прежней!) ­
ВЫБРАТЬ * ­
ОТ (Выберите ROWNUM КАК ROWNO, T.* ­
из k_task T ­
где Flight_date между to_date('20060501', 'ггггммдд') и ­
to_date('20060731', 'ггггммдд') ­
И ROWNUM <= 20) TABLE_ALIAS ­
ГДЕ TABLE_ALIAS.ROWNO >= 10;
&застенчивый;
--2: Существует метод сортировки ORDER BY. (самый эффективный) ­
--(После тестирования этот метод будет становиться все медленнее и медленнее по мере расширения диапазона запросов!) ­
ВЫБРАТЬ * ­
FROM (SELECT TT.*, ROWNUM AS ROWNO ­
ОТ (Выберите t.*­
из k_task T ­
где Flight_date между to_date('20060501', 'ггггммдд') и ­
to_date('20060531', 'ггггммдд') ­
ЗАКАЗАТЬ ПО FACT_UP_TIME, номер рейса) TT ­
ГДЕ ROWNUM <= 20) TABLE_ALIAS ­
где TABLE_ALIAS.rowno >= 10;
&застенчивый;
--3: нет метода сортировки ORDER BY. (Вместо этого рекомендуется использовать метод 1) ­
--(Этот метод будет становиться все медленнее и медленнее по мере увеличения объема данных запроса!) ­
ВЫБРАТЬ * ­
ОТ (Выберите ROWNUM КАК ROWNO, T.* ­
из k_task T ­
где Flight_date между to_date('20060501', 'ггггммдд') и ­
to_date('20060731', 'ггггммдд')) TABLE_ALIAS ­
WHERE TABLE_ALIAS.ROWNO <= 20 ­
И TABLE_ALIAS.ROWNO >= 10;
--TABLE_ALIAS.ROWNO от 10 до 100 ­
&застенчивый;
--4: Существует метод сортировки ORDER BY (вместо него рекомендуется использовать метод 2) ­
--(Этот метод будет становиться все медленнее и медленнее по мере расширения диапазона запроса!) ­
ВЫБРАТЬ * ­
FROM (SELECT TT.*, ROWNUM AS ROWNO ­
ОТ (Выберите * ­
из k_task T ­
где Flight_date между to_date('20060501', 'ггггммдд') и ­
to_date('20060531', 'ггггммдд') ­
ЗАКАЗАТЬ ПО FACT_UP_TIME, номер рейса) TT) TABLE_ALIAS ­
где TABLE_ALIAS.rowno МЕЖДУ 10 ДО 20 &sh;
&застенчивый;
&застенчивый;
--5 альтернативный синтаксис. (С методом записи ORDER BY) ­
--(Стиль синтаксиса отличается от традиционного синтаксиса SQL, который неудобно читать и понимать. Это стандартный и унифицированный стандарт, поэтому использовать его не рекомендуется.) ­
С partdata как( ­
ВЫБЕРИТЕ ROWNUM КАК ROWNO, TT.* FROM (Выберите * ­
из k_task T ­
где Flight_date между to_date('20060501', 'ггггммдд') и ­
to_date('20060531', 'ггггммдд') ­
ЗАКАЗАТЬ ПО FACT_UP_TIME, номер рейса) TT ­
ГДЕ ROWNUM <= 20) ­
Выберите * из partdata, где rowno >= 10 ­
&застенчивый;
--6 альтернативный синтаксис. (Нет метода записи ORDER BY) ­
С partdata как( ­
Выберите ROWNUM AS ROWNO, T.* ­
Из K_task T­
где Flight_date между to_date('20060501', 'ггггммдд') и ­
To_date('20060531', 'ггггммдд') ­
И ROWNUM <= 20) ­
Выберите * из данных части, где Rowno >= 10 ­
-