SQL ЗАПРОС В том, как получить определенное количество записей - PullRequest
2 голосов
/ 14 апреля 2010

У меня есть оператор выбора, получить около 1000 записей Я хочу изменить его, чтобы он возвращал только некоторые записи, определенные @startIndex и @count например : Если бы я сказал @ startIndex = 20 и @ count = 20 результат будет: с 21-й записи до 40-й
Я пытаюсь сделать это, но это займет столько же времени, как если бы я восстановил запись 1000

как лучше это сделать

Ответы [ 2 ]

1 голос
/ 14 апреля 2010
WITH data AS (SELECT DISTINCT name FROM sysobjects),
     ranked AS (SELECT ROW_NUMBER() OVER (ORDER BY name) rownum, * FROM data)
SELECT * FROM ranked 
WHERE rownum BETWEEN @startIndex + 1 AND @startIndex + @count 
ORDER BY rownum
1 голос
/ 14 апреля 2010

Обычно это называется Пейджинг , есть много примеров, если вы используете Google для "пейджинга SQL Server", например это сообщение в блоге MSDN .

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