標準のセット演算である UNION、INTERSECT、EXCEPT/MINUS を使用すると、2 つ以上の SELECT 文の結果を組み合わせて、より複雑な照会を作成できます。
IBM® Netezza® では 3 種類のセット演算をサポートしています。
- UNION [DISTINCT] および UNION ALL
- INTERSECT [DISTINCT] および INTERSECT ALL
- EXCEPT [DISTINCT] または MINUS [DISTINCT] および EXCEPT ALL または MINUS ALL
セット演算子を含んだ SQL 文を
複合照会 といい、複合照会内のそれぞれの SELECT 文を
コンポーネント照会 といいます。
2 つ以上の SELECT 文が、以下の
和両立 条件を満たしていれば、これらの文を組み合わせて 1 つの複合照会を作成することができます。
セット演算の構文は以下のとおりです。
<SELECT-statement>
{UNION | INTERSECT | EXCEPT | MINUS} [ALL | DISTINCT]
<SELECT-statement>
{UNION | INTERSECT | EXCEPT | MINUS} [ALL | DISTINCT]
<SELECT-statement>]*
[ORDER BY …]
[LIMIT …]
セット演算の条件には以下のようなものがあります。
- 対応する列同士の名前が一致する場合、SQL 結果でその列名が使われます。対応する列同士の名前が異なる場合は、最初の照会の列名が set 文で使われます。SQL 結果の列名を変更するには、最初の照会で AS 節を使用します。
- set 文の最後の照会でのみオプションの ORDER BY 節を指定することが可能です。SQL では、最終的な結合結果に対して ORDER BY ソートが適用されます。
- ORDER BY の後にオプションの LIMIT 節を指定することが可能です。SQL では、最終的な結合結果に対して LIMIT 制限が適用されます。
- GROUP BY と HAVING は、個々の照会でのみ指定することができます。結果に影響を与える使い方はできません。