如何选择20行后的前5名

时间:2015-07-15 15:01:53

标签: sql sql-server

我有这个问题:

select top 5 * from tbl_post ORDER BY Id DESC

我想选择第20行之后的前5行。我怎么能这样做?

3 个答案:

答案 0 :(得分:4)

使用OFFSET和FETCH MSDN OFFSET FETCH Clause

SELECT * FROM tbl_post ORDER BY whatever OFFSET 20 ROWS FETCH NEXT 5 ROWS ONLY;

请注意,您必须按某种方式订购才能使用此功能,并且您无法同时使用top

答案 1 :(得分:2)

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

这是分配行号并选择稍后需要的行的最简单方法。

答案 2 :(得分:0)

使用OFFSET和LIMIT

{{1}}