SQL UNION句/演算子は、重複する行を返さずに複数のSELECTステートメントの結果を結合するために使用されます。,
このUNION句を使用するには、各SELECTステートメントに
- 選択された列数と同じ数の列式が必要です。
- 同じデータ型と
- 同じ順序でそれらを持つ
ただし、同じ長さである必要はありません。
構文
UNION句の基本的な構文は次のとおりです。
ここで、指定された条件は、要件に基づいて任意の式にすることができます。
例
次の二つの表を考えてみましょう。
テーブル1-顧客テーブルは次のとおりです。,
表2-注文テーブルは次のとおりです。
さて、次のようにSELECTステートメントでこれら二つのテーブルを結合しましょう−
SQL> SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS LEFT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_IDUNION SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS RIGHT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
これにより、次の結果が生成されます−
UNION ALL句
UNION ALL演算子は、重複行を含む二つのSELECTステートメントの結果を組み合わせるために使用されます。
UNION句に適用されるのと同じ規則がUNION ALL演算子に適用されます。
構文
UNION ALLの基本的な構文は次のとおりです。
ここでは、指定された条件は、要件に基づいて任意の式にすることができます。,
例
次の二つのテーブルを考えてみましょう、
テーブル1−顧客テーブルは次のとおりです。
表2-注文テーブルは次のとおりです。
さて、次のようにSELECTステートメントでこれら二つのテーブルを結合しましょう−
SQL> SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS LEFT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_IDUNION ALL SELECT ID, NAME, AMOUNT, DATE FROM CUSTOMERS RIGHT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
これにより、次の結果が生成されます−
UNION句のような他の二つの句(つまり、演算子)があります。
-
SQL INTERSECT句−これは二つのSELECT文を組み合わせるために使用されますが、第二のSELECT文の行と同一である最初のSELECT文からの行のみを返します。,
-
SQL EXCEPT句-これは二つのSELECT文を結合し、第二のSELECT文によって返されない最初のSELECT文からの行を返します。
コメントを残す