select top 20 * from
(select ROW_NUMBER() over(order by ID)as rownum,* from tb)
as a where rownum>20*(20-1)
SELECT TOP 20 *
FROM tb
WHERE ID NOT IN
(
SELECT TOP (20*(10-1)) ID FROM tb ORDER BY ID
)
ORDER BY ID
--顺序写法:
SELECT TOP 50 *
FROM tb
WHERE id >=
(
SELECT ISNULL(MAX(id),0)
FROM
(
SELECT TOP (50*(10-1)+1) id FROM tb ORDER BY id
) A
)
ORDER BY id
--降序写法:
SELECT TOP 20 *
FROM tb
WHERE id <=
(
SELECT ISNULL(MIN(id),0)
FROM
(
SELECT TOP (20*(10-1)+1) id FROM tb ORDER BY id Desc
) A
)
ORDER BY id Desc
--sql 2012 ---
select * from tbe
order by e.id desc offset 10-1 row fetch next 20 rows only
(select ROW_NUMBER() over(order by ID)as rownum,* from tb)
as a where rownum>20*(20-1)
SELECT TOP 20 *
FROM tb
WHERE ID NOT IN
(
SELECT TOP (20*(10-1)) ID FROM tb ORDER BY ID
)
ORDER BY ID
--顺序写法:
SELECT TOP 50 *
FROM tb
WHERE id >=
(
SELECT ISNULL(MAX(id),0)
FROM
(
SELECT TOP (50*(10-1)+1) id FROM tb ORDER BY id
) A
)
ORDER BY id
--降序写法:
SELECT TOP 20 *
FROM tb
WHERE id <=
(
SELECT ISNULL(MIN(id),0)
FROM
(
SELECT TOP (20*(10-1)+1) id FROM tb ORDER BY id Desc
) A
)
ORDER BY id Desc
--sql 2012 ---
select * from tbe
order by e.id desc offset 10-1 row fetch next 20 rows only