在 SQL Server 複製 MySQL 的 LIMIT
MySQL 的 LIMIT
子句限制傳回的行數。 SQL Server 使用 TOP
子句來實現這一點。 以下是獲得相同功能的方法:
SQL Server 2005 及更高版本
對於 SQL Server 2005 及後續版本,常見的方法是使用 ROW_NUMBER()
:
<code class="language-sql">SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY Id) as RowNum FROM OrderedOrders ) as RankedOrders WHERE RowNum BETWEEN 10 AND 20;</code>
這會為每一行分配一個唯一的排名,然後根據該排名進行過濾。
SQL Server 2000 及更早版本
在舊版(SQL Server 2000及以下)中,需要巢狀SELECT
語句:
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) as SubQuery ORDER BY Id DESC;</code>
這首先選擇前 20 行,然後從該子集中選擇前 10 行。請注意輔助 ORDER BY
子句對於一致結果的重要性。 兩個查詢中的順序對於取得所需的行至關重要。
以上是如何在 SQL Server 中實作與 MySQL 的 LIMIT 子句等效的功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!