Oracle SQLで異なる列を持つテーブルをUNIONする方法


方法1: NULL値を使用して列を合わせる この方法では、異なる列を持つテーブルをUNIONする際に、欠けている列をNULL値で埋めます。

例えば、以下の2つのテーブルがあるとします。

テーブル1 (table1): id name age
1 John 25
2 Mary 30
テーブル2 (table2): id city
3 London
4 Beijing

これらのテーブルをUNIONするために、以下のクエリを使用します。

SELECT id, name, age, NULL AS city FROM table1
UNION ALL
SELECT id, NULL AS name, NULL AS age, city FROM table2;

このクエリでは、テーブル1の列に対応するNULL値の列を追加し、テーブル2の列に対応するNULL値の列を追加しています。

方法2: 列のエイリアスを使用する この方法では、異なる列を持つテーブルをUNIONする際に、エイリアスを使用して列を合わせます。

例えば、以下の2つのテーブルがあるとします。

テーブル1 (table1): id name age
1 John 25
2 Mary 30
テーブル2 (table2): id city
3 London
4 Beijing

これらのテーブルをUNIONするために、以下のクエリを使用します。

SELECT id, name, age FROM table1
UNION ALL
SELECT id, city AS name, NULL AS age FROM table2;

このクエリでは、テーブル2のcity列をname列にエイリアスとして指定し、テーブル1と列の数とデータ型を一致させています。

以上の方法で、異なる列を持つテーブルをUNIONすることができます。適切な方法は、データの構造に応じて異なる場合があります。