在 SQL Server 中实现 LIMIT 功能
SQL Server 提供了多种方法来限制查询返回的行数,镜像 MySQL 的 LIMIT
子句。
SQL Server 2005 及后续版本
从 SQL Server 2005 开始,公共表表达式 (CTE) 中的 ROW_NUMBER()
函数提供了一个干净的解决方案。 这是一个例子:
<code class="language-sql">USE AdventureWorks; GO WITH NumberedOrders AS ( SELECT SalesOrderID, OrderDate, ROW_NUMBER() OVER (ORDER BY OrderDate) AS RowNum FROM Sales.SalesOrderHeader ) SELECT * FROM NumberedOrders WHERE RowNum BETWEEN 10 AND 20;</code>
较旧的 SQL Server 版本(2000 及更早版本)
对于 SQL Server 2005 之前的版本,需要使用 TOP
和 ORDER BY
的组合方法:
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM YourTable ORDER BY Id) AS Subquery ORDER BY Id DESC;</code>
该技术首先检索前 20 行,然后从该子集中选择前 10 行,有效地实现了基于范围的限制。 请注意,嵌套的 ORDER BY
对于正确的结果至关重要。 将 YourTable
和 Id
替换为您的实际表格和排序列。
以上是如何实现 SQL Server 相当于 MySQL 的 LIMIT 子句?的详细内容。更多信息请关注PHP中文网其他相关文章!