[2 [2
有效检索数据的子集(分页的一个关键方面)需要能够抵消结果的能力。 与许多其他数据库系统不同,SQL Server不在本地支持偏移子句。
问题:缺乏本机偏移
考虑一个常见的方案:从表中检索51至75行。 其他数据库中使用的直接方法: 选择 *从mytable offset 50 limit 25
在SQL Server中不可用。 这需要找到替代方法以从特定偏移量开始的情况下检索数据,而无需处理所有前行。
SQL Server(2005及以后)的解决方案:SQL Server 2005及更高版本可以利用派生的表和 row_number()
function:选择COL1,COL2 从 ( 选择col1,col2,row_number()over(iD订购)作为rownum 来自mytable )作为MyDerivedT的 @Startrow和@endrow;
SELECT * FROM MyTable OFFSET 50 LIMIT 25
在SQL Server 2000中处理行偏移更为复杂。 有关详细的教程和方法,请参阅外部资源。 这些通常涉及创建和管理临时表以实现分页。 [2
最佳性能:指定列:
利用索引:在订购列上适当的索引(示例中的在示例中)急剧提高查询速度。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3