如何在不使用SQL Server中的where查询的情况下从第5行选择记录

时间:2019-01-04 11:42:02

标签: sql-server tsql paging

我有一个表,它有10条记录,并且不使用where条件从5到10获取记录。

2 个答案:

答案 0 :(得分:3)

您可以使用OFSET-FETCH。应该是这样的:

SELECT  *
FROM mytable
ORDER BY id
OFFSET 5 ROWS  
FETCH NEXT 5 ROWS ONLY;  

由于SQL Server 2012支持上述语法,对于早期版本,您可以使用排名功能:

WITH DataSource AS
(
    SELECT *
          ,ROW_NUMBER() OVER(ORDER BY id) AS rn
    FROM mytable
)   
SELECT *
FROM DataSource
WHERE rn >= 5 AND rn <=10;

答案 1 :(得分:0)

执行TOP子句的另一种方法是使用here子句,

SELECT TOP(5) *
FROM mytable
ORDER BY id DESC;

希望有帮助。