SQL で n 番目の行を選択するためのデータベース間の戦略
この記事では、SQL テーブルから n 番目の行を取得する手法を検討し、さまざまなデータベース システムと互換性のあるソリューションを提供します。
一般的なアプローチ
SQL 標準には、このタスク用の直接コマンドがありません。 ただし、いくつかの一般的な方法が存在します。
ROW_NUMBER()
のようなウィンドウ関数を使用して、各行に一意のランクを割り当てます。 次に、結果セットをフィルタリングして、目的のランクの行を取得します。LIMIT
句と OFFSET
句が用意されています。 OFFSET
は指定された行数をスキップしますが、LIMIT
は出力を特定の行数に制限します。データベース固有の実装
SQL サーバー:
<code class="language-sql">WITH RankedRows AS ( SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNum, OrderID, OrderDate FROM Orders ) SELECT * FROM RankedRows WHERE RowNum = 1000000;</code>
MySQL / PostgreSQL:
<code class="language-sql">SELECT * FROM your_table LIMIT 1 OFFSET (n - 1);</code>
Oracle / DB2 / SQL Server (代替):
<code class="language-sql">SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY key ASC) AS rn, columns FROM tablename ) AS ranked_rows WHERE rn = n;</code>
PostgreSQL 8.4 / SQLite 3.25.0 :
<code class="language-sql">SELECT * FROM your_table OFFSET (n - 1) ROWS FETCH FIRST 1 ROW ONLY;</code>
これは、複数のデータベース システム間で n 番目の行を効率的に選択する方法の包括的な概要を提供します。 your_table
、key
、columns
、n
などのプレースホルダーを、実際のテーブル名、列名、および必要な行番号に置き換えることを忘れないでください。
以上が異なるデータベース システム間で SQL テーブルから n 番目の行を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。