Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разбить выборку на диапазоны  [new]
Earl11
Member

Откуда:
Сообщений: 46
Здравствуйте. Имеется таблица в 50 000 записей. Как вывести, например, по 500 записей (последовательно; например, сначала первые 500, потом следующие)? С помощью ROW_NUMBER()?
1 дек 19, 23:04    [22029959]     Ответить | Цитировать Сообщить модератору
 Re: Разбить выборку на диапазоны  [new]
zby
Member

Откуда:
Сообщений: 35
Earl11,

[url=]https://docs.microsoft.com/ru-ru/sql/t-sql/queries/select-order-by-clause-transact-sql?view=sql-server-ver15[/url]

Смотрите offset...fetch
1 дек 19, 23:36    [22029978]     Ответить | Цитировать Сообщить модератору
 Re: Разбить выборку на диапазоны  [new]
3unknown
Member

Откуда: New York
Сообщений: 140
if object_id ('tempdb..#t') is not null drop table #t

create  table #t(Id int IDENTITY(1, 1) NOT NULL)

DECLARE @i int = 0;

WHILE @i < 50000 -- insert 100 rows.  change this value to whatever you want.
BEGIN

INSERT #t DEFAULT VALUES
SET @i = @i + 1;

END

select*
from #t
order by id
OFFSET 0 ROWS  
    FETCH NEXT 500 ROWS ONLY

;with a as(
select*
,NTILE(100) over(order by id) n
from #t 
)
select id from a where n=1 
order by id
2 дек 19, 00:10    [22030004]     Ответить | Цитировать Сообщить модератору
 Re: Разбить выборку на диапазоны  [new]
Earl11
Member

Откуда:
Сообщений: 46
Спасибо
2 дек 19, 22:33    [22030803]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить