首页 > 解决方案 > 偏移行与行有什么区别

问题描述

在 SQL Server 中,Offset Row 和 Offset Rows 在以下方面有什么区别:

Select * From TableName 
Order by Fields
Offset 10 Row;

Select * From TableName 
Order by Fields
Offset 10 Rows;

标签: sql-serverfetchoffset

解决方案


根据SELECT - ORDER BY Clause (Transact-SQL),在 Arguments 部分:

offset_row_count_expression 可以是变量、参数或常量标量子查询。使用子查询时,它不能引用外部查询范围中定义的任何列。也就是说,它不能与外部查询相关联。

ROWROWS是同义词,是为了 ANSI 兼容性而提供的。

在查询执行计划中,偏移行计数值显示在 TOP 查询运算符的偏移属性中。

重点补充。

ROWROWS除字符外都是相同的运算符。SQL Server 中有几个这样的例子;例如decimalnumeric。另一个是FIRSTNEXT(for OFFSET) 也是同义词。

通常这些是为了满足兼容性或 ISO 标准。

如果它是语法“事物”,我也不会感到惊讶。SQL 在结构上非常“英语”,因此类似的语句OFFSET 10 ROW FETCH NEXT 1 ROWS ONLY不是很“英语”。因此,两者ROWSROW都是允许的,因为它们具有语法意义。)


推荐阅读