Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在行号的间隔之间获得行?_Sql Server - Fatal编程技术网

Sql server 如何在行号的间隔之间获得行?

Sql server 如何在行号的间隔之间获得行?,sql-server,Sql Server,例如,在sql server中是否可以获取从第10行到第20行的行? 我的意思是,通过查询数据库,我得到了1800多行,然后我想10×10地显示它们 使用CTE添加一列,该列表示每行的行号,然后按该列进行筛选 ;WITH MyCTE AS ( SELECT *, ROW_NUMBER() OVER(ORDER BY ID) RowNum FROM Table ) SELECT * FROM MyCTE WHERE RowNum

例如,在sql server中是否可以获取从第10行到第20行的行?
我的意思是,通过查询数据库,我得到了1800多行,然后我想10×10地显示它们

使用CTE添加一列,该列表示每行的行号,然后按该列进行筛选

;WITH MyCTE AS
(
    SELECT    *,
              ROW_NUMBER() OVER(ORDER BY ID) RowNum
    FROM      Table
)

SELECT *
FROM   MyCTE
WHERE  RowNum BETWEEN 10 AND 20

或者在SQL 2012+中,使用
OFFSET\FETCH

....
ORDER BY ...
OFFSET 10 ROWS
FETCH NEXT 10 ROWS;
请参见示例:

WITH ResultSetWithRowNumber AS 
(
  SELECT ROW_NUMBER() OVER(ORDER BY MyField1) AS RowNumber, MyField1, MyField2
  FROM MyTable
  WHERE MyField2 = SomeValue
)
SELECT RowNumber, MyField1, MyField2
FROM ResultSetWithRowNumber 
WHERE RowNumber BETWEEN 10 AND 20