Zwei Zeilen werden gemäß einem Vergleichsoperator lexikografisch verglichen. Haben beide Zeilen nur eine Spalte, dann erhält man den gewöhnlichen Vergleich von zwei Werten.
{
zeile vergleichs_op zeile |
vektor_spalte vergleichs_op ausdruck }
zeile ::= { (
ausdruck ,...) |
ausdruck |
unterabfrage }
vektor_spalte ::= [
tabelle .]{
spalte[min..max] |
spalte (
min..max }
vergleichs_op ::= { = | < | > | <= | >=| <> }
zeile
Operanden für den Vergleich.
Jeder ausdruck in zeile muss einfach sein. Die Zeile besteht aus den Werten von ausdruck in der angegebenen Reihenfolge. Ein einzelner ausdruck liefert also eine Zeile mit einer Spalte.
unterabfrage muss eine Tabelle ohne multiple Spalten liefern, die höchstens eine Zeile hat. Diese Zeile ist der Vergleichsoperand. Ist die gelieferte Tabelle leer, so besteht der Vergleichsoperand aus einer Zeile, deren Spalten alle den Wert NULL haben.
Die zu vergleichenden Zeilen müssen dieselbe Anzahl Spalten haben, und die korrespondierenden Spalten der linken und rechten Zeile müssen verträgliche Datentypen haben (siehe Abschnitt „Verträglichkeit von Datentypen").
vektor_spalte
Eine multiple Spalte, die nach besonderen Regeln verglichen wird. Die Spaltenangabe darf keine Außenreferenz sein.
ausdruck
Der Wert von ausdruck muss einfach sein, und sein Datentyp muss mit dem Datentyp der Ausprägungen von vektor_spalte verträglich sein (siehe Abschnitt „Verträglichkeit von Datentypen").
vergleichs_op
Vergleichsoperator:
= < > <= >= <> | Vergleich auf gleich Vergleich auf kleiner Vergleich auf größer Vergleich auf kleiner oder gleich Vergleich auf größer oder gleich Vergleich auf ungleich |
Ergebnis
zeile vergleichs_op zeile
Werden Zeilen mit mehr als einer Spalte verglichen, so gelten die lexikografischen Vergleichsregeln für Zeilen (siehe Abschnitt „Vergleichsregeln").
Werden einspaltige Zeilen verglichen, so sind die Vergleichsregeln abhängig vom Datentyp der Spalten (siehe Abschnitt „Vergleichsregeln").
vektor_spalte vergleichs_op ausdruck
Jede Ausprägung von vektor_spalte wird gemäß den Vergleichsregeln für den Datentyp mit ausdruck verglichen (siehe unten Abschnitt „Vergleichsregeln"). Die Vergleichsergebnisse werden mit OR verknüpft.
Beispiel
Wenn X eine multiple Spalte mit 3 Elementen ist, ist der Vergleich
X[1..3] >= 13
zu folgenden Vergleichen äquivalent:
X[1] >= 13 OR X[2] >= 13 OR X[3] >= 13