Microsoft SQL Server, PostgreSQL, SQL

PostgreSQL и MSSQLServer: Ограничение количества отображаемых строк выборки

Вывести первые 100 строк запроса:

select * from table_name
order by id
limit 100
PostgreSQL limit
select * from table_name 
fetch next 100 rows only
PostgreSQL fetch
select * from table_name
order by id
offset 0 rows fetch next 100 rows only
Microsoft SQL Server offset...fetch

Вывести 100 строк выборки, пропустив 20 строк:

select * from table_name
order by id
limit 100 offset 20
PostgreSQL limit...offset
select * from table_name 
offset 20 rows fetch next 100 rows only
PostgreSQL offset...fetch
select * from table_name
order by id
offset 20 rows fetch next 100 rows only
Microsoft SQL Server offset...fetch

Стоит отметить, что для использования предложения OFFSET и FETCH в MSSQLServer требуется ORDER BY. В PostgreSQL — нет. В MS SQL Server использование offset без fetch запрещено. В PostgreSQL — нет.

Для ограничения количества выводимых строк без сдвига для Microsoft SQL Server можно воспользоваться оператором top:

select top 100 *
from table_name
order by id
Microsoft SQL Server top

Документация: PostgreSQL, MSSQLServer (offset…fetch, top).

Оставьте своё мнение...

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.