У меня есть запрос, и я хочу, чтобы это было нумерация страниц в Oracle? - PullRequest
0 голосов
/ 23 марта 2020
    SELECT 
        a.*, b.* 
    FROM
        daily a, server b
    WHERE  
        to_date(a.insertdatetime) >= DATE '2020-03-17' 
        AND  to_date(a.insertdatetime) <= DATE '2020-03-18' 
        AND a.status LIKE '%ERROR%'   
        AND b.category LIKE '%BOOK%' 
   ORDER BY a.insertdatetime, b.place, b.name ;

Как сделать так, чтобы этот запрос имел нумерацию страниц?

1 Ответ

0 голосов
/ 23 марта 2020

Это действительно зависит от того, что вы называете нумерацией страниц.

С точки зрения чистой базы данных, предполагая Oracle 12 c, вы можете использовать предложение ограничения строки:

select d.*, s.* 
from daily d
inner join server s on d.domainurl = s.domainurl
where    
    d.insertdatetime >= DATE '2020-03-17' 
    d.insertdatetime <  DATE '2020-03-19' 
    and d.status   LIKE '%ERROR%'   
    and s.category LIKE '%BOOK%' 
order by d.insertdatetime, s.place, s.name 
offset <N> rows fetch next <M> rows

Где N (соответственно M) представляет количество пропущенных строк (соответственно выбрано).

Примечания:

  • всегда используйте современный явный синтаксис объединения, а не устаревшие, неявные объединения

  • избегайте использования функций в предикатах where, если вы можете

  • значимые псевдонимы таблиц облегчают чтение и чтение запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...