OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
アイコン

OceanBaseデータベース

V4.3.5

    OceanBase logo

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについて法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. V4.3.5
    アイコンOceanBaseデータベース
    V 4.3.5
    • V 4.3.5

    UNION句句

    最終更新日:2026-04-09 02:53:57  更新
    シェア
    このページの内容
    説明
    制限事項と注意点
    構文
    パラメータの説明
    例
    関連ドキュメント

    折りたたみ

    シェア

    説明

    このステートメントは、複数のSELECTクエリの結果に対して集合演算を実行するために使用されます。

    制限事項と注意点

    • 集合演算子はすべて同じ優先順位を持ちます。SQL文に複数の集合演算子が含まれている場合、OceanBaseデータベースは括弧で演算の順序を明示的に指定しない限り、左から右の順にそれらを計算します。

    • 各集合演算子はSELECTステートメントの結果セットに対してのみ操作でき、各結果セットの列数とデータ型は同一でなければなりません。

    構文

    select_stmt
        {UNION | UNION ALL | MINUS | EXCEPT | INTERSECT} select_stmt
        [, {UNION | UNION ALL | MINUS | EXCEPT | INTERSECT} select_stmt ...]
        [ORDER BY order_by_condition_list]
        [LIMIT limit_clause];
    

    パラメータの説明

    パラメータ 説明
    select_stmt セットコンピューティング用の SELECT ステートメント。SELECT ステートメントの詳細については、SELECTを参照してください。
    UNION 2つの SELECT ステートメントの結果セットを1つの集合に統合し、重複する行を削除します。
    UNION ALL 2つの SELECT ステートメントの結果セットを1つの集合に統合し、重複する行を削除しません。
    MINUS | EXCEPT 前の SELECT ステートメントの結果セットに含まれない、次の SELECT ステートメントの結果セット内の行を返します。MINUS は EXCEPT のシノニムです。
    INTERSECT 2つの SELECT ステートメントの結果セットの共通部分を返し、重複を削除します。
    ORDER BY order_by_condition_list セットコンピューティング後のソートを指定します。
    LIMIT limit_clause セットコンピューティング後に返す行数を指定します。

    例

    1. テーブル test_tbl1 と test_tbl2 を作成します。

      CREATE TABLE test_tbl1 (col1 INT, col2 INT);
      CREATE TABLE test_tbl2 (col1 INT, col2 INT);
      
    2. テーブル test_tbl1 と test_tbl2 にテストデータを挿入します。

      INSERT INTO test_tbl1 VALUES (1, 1), (2, 2), (4, 4);
      INSERT INTO test_tbl2 VALUES (2, 2), (3, 3), (5, 5);
      
    • テーブル test_tbl1 と test_tbl2 から col1 および col2 列のデータを選択し、UNION ALL 演算子を使用してそれらを1つの結果セットに統合します。重複する行は保持されます。

      SELECT col1, col2 FROM test_tbl1
      UNION ALL
      SELECT col1, col2 FROM test_tbl2;
      

      実行結果は次のとおりです:

      +------+------+
      | col1 | col2 |
      +------+------+
      |    1 |    1 |
      |    2 |    2 |
      |    4 |    4 |
      |    2 |    2 |
      |    3 |    3 |
      |    5 |    5 |
      +------+------+
      6 rows in set
      
    • テーブル test_tbl1 と test_tbl2 から col1 および col2 列のデータを選択し、UNION 演算子を使用してそれらを1つの結果セットに統合します。重複する行は削除されます。

      SELECT col1, col2 FROM test_tbl1
      UNION
      SELECT col1, col2 FROM test_tbl2;
      

      実行結果は次のとおりです:

      +------+------+
      | col1 | col2 |
      +------+------+
      |    1 |    1 |
      |    2 |    2 |
      |    4 |    4 |
      |    3 |    3 |
      |    5 |    5 |
      +------+------+
      5 rows in set
      
    • テーブル test_tbl1 と test_tbl2 から col1 および col2 列のデータを選択し、2つのテーブルの共通部分を返します。つまり、test_tbl1 と test_tbl2 の col1 および col2 列のデータの重複部分を返します。

      SELECT col1, col2 FROM test_tbl1
      INTERSECT
      SELECT col1, col2 FROM test_tbl2;
      

      実行結果は次のとおりです:

      +------+------+
      | col1 | col2 |
      +------+------+
      |    2 |    2 |
      +------+------+
      1 row in set
      
    • テーブル test_tbl1 から col1 および col2 列のデータを選択し、テーブル test_tbl2 の同じ col1 および col2 列のデータを除外します。つまり、test_tbl1 にあり test_tbl2 にないデータ行を返します。

      SELECT col1, col2 FROM test_tbl1
      EXCEPT
      SELECT col1, col2 FROM test_tbl2;
      

      実行結果は次のとおりです:

      +------+------+
      | col1 | col2 |
      +------+------+
      |    1 |    1 |
      |    4 |    4 |
      +------+------+
      2 rows in set
      
    • テーブル test_tbl1 と test_tbl2 から col1 および col2 のデータを取得し、それらを統合します。その後、統合後の結果を col1 で降順にソートし、上位3件の結果のみを返します。

      SELECT col1, col2 FROM test_tbl1
      UNION
      SELECT col1, col2 FROM test_tbl2
      ORDER BY col1 DESC
      LIMIT 3;
      

      実行結果は次のとおりです:

      +------+------+
      | col1 | col2 |
      +------+------+
      |    5 |    5 |
      |    4 |    4 |
      |    3 |    3 |
      +------+------+
      3 rows in set
      

    関連ドキュメント

    • SELECT
    • 集合演算

    前のトピック

    ウィンドウ句
    最後

    次のトピック

    SET
    次
    このページの内容
    説明
    制限事項と注意点
    構文
    パラメータの説明
    例
    関連ドキュメント