sql-server - 偏移行与行有什么区别
问题描述
在 SQL Server 中,Offset Row 和 Offset Rows 在以下方面有什么区别:
Select * From TableName
Order by Fields
Offset 10 Row;
Select * From TableName
Order by Fields
Offset 10 Rows;
解决方案
根据SELECT - ORDER BY Clause (Transact-SQL),在 Arguments 部分:
offset_row_count_expression 可以是变量、参数或常量标量子查询。使用子查询时,它不能引用外部查询范围中定义的任何列。也就是说,它不能与外部查询相关联。
ROW
和ROWS
是同义词,是为了 ANSI 兼容性而提供的。在查询执行计划中,偏移行计数值显示在 TOP 查询运算符的偏移属性中。
重点补充。
ROW
和ROWS
除字符外都是相同的运算符。SQL Server 中有几个这样的例子;例如decimal
和numeric
。另一个是FIRST
和NEXT
(for OFFSET
) 也是同义词。
通常这些是为了满足兼容性或 ISO 标准。
(如果它是语法“事物”,我也不会感到惊讶。SQL 在结构上非常“英语”,因此类似的语句OFFSET 10 ROW FETCH NEXT 1 ROWS ONLY
不是很“英语”。因此,两者ROWS
和ROW
都是允许的,因为它们具有语法意义。)
推荐阅读
- sql - SQL GROUP BY function returning incorrect SUM amount
- javascript - 动画顶部三角形的左侧与所选菜单元素的左侧对齐
- android - 当数据准备好时,FragmentPagerAdapter 将对象列表传递给片段
- c - 在 C 中打开文件以进行读取
- java - java : 使用缓冲输入流是否使输入流到字节 [] 的转换更有效?
- powershell - Robocopy 文件到随机命名文件夹
- ios - 自定义重置根 ViewController segue 不显示正确的导航栏标题和按钮
- excel - 在预定义的位置创建数据透视表
- xslt - 如何使用 XSLT 在 toc.ncx 中添加 playOrder?
- reactjs - Recaptcha 缺少必需的参数:sitekey