ホームページ >データベース >mysql チュートリアル >MySQL の LIMIT 句に相当する SQL Server を実装するにはどうすればよいですか?
SQL Server で LIMIT 機能を実現する
SQL Server は、MySQL の LIMIT
句をミラーリングして、クエリによって返される行数を制限するいくつかの方法を提供します。
SQL Server 2005 以降のバージョン
SQL Server 2005 以降では、Common Table Expression (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
を実際のテーブルと順序付け列に置き換えます。
以上がMySQL の LIMIT 句に相当する SQL Server を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。