LINQ中.Skip()方法的SQL类似功能是什么?

例如:我想从特定的数据库表中 Select 1000-1100行.

仅使用SQL就可以做到这一点吗?还是需要 Select 整个表,然后在内存中查找行?如果可能的话,我希望尽量避免这种情况,因为桌子可能会很大.

推荐答案

在SQLServer2005及以上版本中,可以使用ROW_NUMBER函数.如.

USE AdventureWorks;
GO
WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
    FROM Sales.SalesOrderHeader 
) 
SELECT * 
FROM OrderedOrders 
WHERE RowNumber BETWEEN 51 AND 60; --BETWEEN is inclusive

Sql相关问答推荐

IS True操作员

基于模式或其他行集的数据复制

无法找到正确的SQL查询需求

如何在SQL Server中列出从当前月份开始的过go 10年中的月份

R中对Arrow duckdb工作流的SQL查询

提高写密集型表的查询性能

使用SQL创建列出两个时间戳之间小时数的列

从列中提取子字符串的ORDER BY CASE语句

是否可以为表中的所有列生成散列值?

将结果从一列转换为两行或更多

如何将不同层次的产品组和规格组合到最深一层?

删除所有订单中可用的重复值

用另一个表中的特定名称替换 SQL 查询中的 ID.但我的两个表都有多个列

不同计数的 Postgres PIVOT 表

日期逻辑(查找过go 90 天内的第一个匹配行)

SQL for Smarties 类型问题:从表中 Select 记录,并对某些值进行分组

如何将输出转换为二维格式?

将 MERGE 语句与 Oracle PL/SQL 表类型一起使用时,导致无效数据类型错误的原因是什么?

字符串从更改到表列和查询中的一行的转换错误

pyspark 将列转换为行