QUERY-Ausdruck (query_expression)
Um eine ungeordnete Ergebnistabelle in einer
SELECT-Anweisung (select_statement) zu erzeugen, ist die Angabe eines QUERY-Ausdrucks (query_expression) erforderlich.Syntax
<query_expression> ::= <query_term> | <query_expression> UNION [ALL] <query_term> | <query_expression> EXCEPT [ALL] <query_term>
query_termErläuterung
Besteht der QUERY-Ausdruck nur aus einer
QUERY-Spezifikation (query_spec) (Angabe erfolgt in query_term), so ist das Ergebnis des QUERY-Ausdrucks das unveränderte Ergebnis der QUERY-Spezifikation.Besteht der QUERY-Ausdruck aus mehr als einer QUERY-Spezifikation, muß die Anzahl der selektierten Spalten in allen QUERY-Spezifikationen des QUERY-Ausdrucks gleich sein. Die jeweils i-ten selektierten Spalten der QUERY-Spezfikationen müssen vergleichbar sein.
Spaltenart (select_column) |
|
Numerische Spalten |
Sind untereinander vergleichbar. Sind alle i-ten selektierten Spalten numerische Spalten, so ist die i-te Spalte der Ergebnistabelle eine numerische Spalte. |
Alphanumerische Spalten, Codeattribut BYTE |
Sind untereinander vergleichbar. |
Alphanumerische Spalten, Codeattribut ASCII, EBCDIC, UNICODE |
Sind untereinander vergleichbar. Sind auch vergleichbar mit Datums-, Zeit- und Zeitstempelwerten. |
Alle i-ten Spalten sind Datumswerte |
i-te Spalte der Ergebnistabelle ist Datumswert |
Alle i-ten Spalten sind Zeitwerte |
i-te Spalte der Ergebnistabelle ist Zeitwert |
Alle i-ten Spalten sind Zeitstempelwerte |
i-te Spalte der Ergebnistabelle ist Zeitstempelwert |
Spalten vom Typ BOOLEAN |
Sind untereinander vergleichbar. |
Alle i-ten Spalten sind vom Typ BOOLEAN |
i-te Spalte der Ergebnistabelle ist vom Typ BOOLEAN |
Spalten von beliebigem anderen Datentyp (nicht weiter oben genannt) |
i-te Spalte der Ergebnistabelle ist eine alphanumerische Spalte. Vergleichbare Spalten mit unterschiedlichen Code-Attributen werden konvertiert. |
Sind Spalten vergleichbar, haben aber unterschiedliche Längen, so hat die korrespondierende Spalte der Ergebnistabelle die maximale Länge der zugrundeliegenden Spalten.
Namen der Spalten in der Ergebnistabelle
Die Namen der Spalten der Ergebnistabelle werden durch die Namen der selektierten Spalten der ersten QUERY-Spezifikation gebildet.
Sei T1 der linke Operand von UNION, EXCEPT oder INTERSECT (definiert in
query_term). T2 sei der rechte Operand. R sei das Ergebnis der Operation T1 und T2.Bei fehlender Klammerung wird INTERSECT vor UNION und EXCEPT ausgewertet. UNION und EXCEPT haben gleiche Priorität und werden bei fehlender Klammerung von links nach rechts ausgewertet.