ホームページ > データベース > mysql チュートリアル > 異なるデータベース システム間で SQL テーブルから n 番目の行を選択するにはどうすればよいですか?

異なるデータベース システム間で SQL テーブルから n 番目の行を選択するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-20 17:00:15
オリジナル
403 人が閲覧しました

How to Select the nth Row from a SQL Table Across Different Database Systems?

SQL で n 番目の行を選択するためのデータベース間の戦略

この記事では、SQL テーブルから n 番目の行を取得する手法を検討し、さまざまなデータベース システムと互換性のあるソリューションを提供します。

一般的なアプローチ

SQL 標準には、このタスク用の直接コマンドがありません。 ただし、いくつかの一般的な方法が存在します。

  • ウィンドウ関数: ROW_NUMBER() のようなウィンドウ関数を使用して、各行に一意のランクを割り当てます。 次に、結果セットをフィルタリングして、目的のランクの行を取得します。
  • LIMIT および OFFSET: PostgreSQL や MySQL などのデータベースには、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_tablekeycolumnsn などのプレースホルダーを、実際のテーブル名、列名、および必要な行番号に置き換えることを忘れないでください。

以上が異なるデータベース システム間で SQL テーブルから n 番目の行を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート