У меня есть этот запрос:
select top 5 * from tbl_post ORDER BY Id DESC
Я хочу выбрать первые 5 строк после 20-й строки. Как я могу это сделать?
У меня есть этот запрос:
select top 5 * from tbl_post ORDER BY Id DESC
Я хочу выбрать первые 5 строк после 20-й строки. Как я могу это сделать?
Используйте OFFSET и FETCH пункт MSDN OFFSET FETCH:
SELECT * FROM tbl_post ORDER BY whatever OFFSET 20 ROWS FETCH NEXT 5 ROWS ONLY;
Обратите внимание, что вам нужно что-то заказать, чтобы это работало, и вы не можете использовать top
одновременно.
with x as (select row_number() over(order by id desc) as rn, * from tbl_post)
select t.*
from x join tbl_post t on x.id = t.id
where x.rn between 20 and 25
Это самый простой способ назначить номера строк и выбрать нужные строки позже.
tbl_post
таблицы
- person Vamsi Prabhala; 15.07.2015
Используйте СМЕЩЕНИЕ и ПРЕДЕЛ
SELECT *
FROM tbl_post
ORDER BY id DESC offset 100 limit 5;