在 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中文網其他相關文章!