ホームページ >データベース >mysql チュートリアル >SQL Server で SQL クエリによって返される行を制限するにはどうすればよいですか?
SQL Server の LIMIT 句: 実装と代替
多くの開発者は、MySQL やその他のデータベース管理システムで一般的に使用される LIMIT 句を使用して、SQL クエリによって返される行数を制限することに慣れています。ただし、SQL Server は LIMIT 句をネイティブにサポートしていません。この記事では、SQL Server で同じ機能を実現する別の方法について説明します。
方法 1: SQL Server 2005 以降のバージョンの ROW_NUMBER() 関数
SQL Server 2005 以降の場合、ROW_NUMBER() 関数を使用して LIMIT 句をシミュレートできます。次の例は、このアプローチを示しています:
<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>
このクエリは、SalesOrderID が 10 ~ 20 の行を返し、結果セットを効果的に制限します。
方法 2: SQL Server 2000 以前の入れ子になったクエリ
SQL Server 2000 以前の場合は、ネストされたクエリ方法を使用できます。
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) ORDER BY Id DESC</code>
このクエリは、ID で並べ替えられた最初の 20 行を返す内部サブクエリから最初の 10 行を取得します。外側のサブクエリでソート順序を逆にすると、最終結果は ID の昇順で上位 10 行になります。
以上がSQL Server で SQL クエリによって返される行を制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。