在SQL Server中實作LIMIT子句的等效功能
許多SQL資料庫都支援LIMIT子句來限制傳回結果集的行數。雖然MySQL直接支援LIMIT,但SQL Server沒有等效的子句。然而,SQL Server提供了多種方法來實現相同的功能。
方法一:使用ROW_NUMBER()和BETWEEN
對於SQL Server 2005以上版本,可以使用ROW_NUMBER()函數為結果集中的每筆記錄分配一個行號。然後,使用BETWEEN運算子根據行號過濾結果集。
<code class="language-sql">USE AdventureWorks; GO WITH OrderedOrders AS ( SELECT SalesOrderID, OrderDate, ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber' FROM Sales.SalesOrderHeader ) SELECT * FROM OrderedOrders WHERE RowNumber BETWEEN 10 AND 20;</code>
方法二:使用TOP與外層查詢
對於SQL Server 2000及更早版本,可以使用巢狀查詢,結合TOP和ORDER BY子句。外層查詢從內層查詢中選擇指定數量的行。
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) ORDER BY Id DESC</code>
以上是如何在 SQL Server 中實作 LIMIT 子句的等效項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!