In diesem Abschnitt werden die komplexen ESQL-Vergleichsoperatoren (Prädikate) beschrieben. Informationen zu den einfachen ESQL-Vergleichsoperatoren erhalten Sie unter Einfache ESQL-Vergleichsoperatoren.
Dieser Operator existiert in zwei Formen: SYMMETRIC (SYMMETRISCH) und ASYMMETRIC (ASYMMETRISCH) (letztere wird standardmäßig verwendet, wenn keine Form angegeben ist). Das Format SYMMETRIC entspricht Folgendem:
(Quelle >= Grenzwert1 AND Quelle <= Grenzwert2) OR (Quelle >= Grenzwert2 AND Quelle <= Grenzwert1)
Das Format ASYMMETRIC entspricht Folgendem:
Quelle >= Grenzwert1 AND Quelle <= Grenzwert2
Das Format ASYMMETRIC ist einfacher, gibt jedoch nur dann das erwartete Ergebnis zurück, wenn der erste Grenzwert kleiner ist als der zweite Grenzwert. Die Verwendung ist nur dann sinnvoll, wenn es sich bei den Ausdrücken für Grenzwertbedingungen um Literale handelt.
Handelt es sich bei den Operanden um unterschiedliche Typen, gelten Sonderregelungen. Eine Beschreibung finden Sie unter Implizite Umsetzungen.
EXISTS(SELECT * FROM etwas WHERE Prädikat)
Das Ergebnis ist TRUE, wenn der linke Operand kein NULL-Wert und gleich einem der rechten Operanden ist. Das Ergebnis ist FALSE, wenn der linke Operand kein NULL-Wert ist und keinem der rechten Operanden entspricht (von denen keiner ein NULL-Wert ist). Andernfalls wird als Ergebnis UNKNOWN zurückgegeben. Handelt es sich bei den Operanden um unterschiedliche Typen, gelten Sonderregelungen. Eine Beschreibung finden Sie unter Implizite Umsetzungen.
Primärer Zweck des Operators IS ist die Prüfung, ob ein Wert NULL ist. Der Vergleichsoperator (=) lässt dies nicht zu, da bei einem Vergleich mit NULL das Ergebnis ebenfalls NULL lautet.
Mit dem Operator IS können Sie zudem auf die Booleschen Werte TRUE und FALSE hin prüfen und Dezimalwerte für Sonderwerte testen. Diese werden in einer beliebigen Kombination aus Groß- und Kleinschreibung mit INF, +INF, -INF, NAN (keine Zahl) und NUM (eine gültige Zahl) bezeichnet. Die alternative Formate +INFINITY, -INFINITY und NUMBER werden auch akzeptiert.
Wenn der Operator für nicht numerische Typen verwendet wird, wird das Ergebnis 'FALSE' zurückgegeben.
Das Ergebnis lautet TRUE, wenn keiner der Operanden NULL ist und der Operand source (Quelle) dem Musteroperanden entspricht. Das Ergebnis lautet FALSE, wenn keiner der Operanden NULL ist und der Operand source (Quelle) nicht dem Musteroperanden entspricht. Andernfalls wird als Ergebnis UNKNOWN zurückgegeben.
Das Muster wird durch eine Zeichenfolge angegeben, wobei das Prozentzeichen (%) und das Unterstreichungszeichen (_) als Sonderzeichen verwendet werden können:
Body.Trade.Company LIKE 'I__'
Body.Trade.Company LIKE 'I%'
Sollen das Prozent- und das Unterstreichungszeichen in Ausdrücken, nach denen gesucht wird, verwendet werden, muss diesen Sonderzeichen ein Escapezeichen vorangestellt werden, für das in der Regel der umgekehrte Schrägstrich (\) verwendet wird (Standardeinstellung).
Mit dem folgenden Prädikat beispielsweise wird eine Übereinstimmung mit IBM_Corp zurückgegeben.
Body.Trade.Company LIKE 'IBM\_Corp'
Sie können auch ein anderes Escapezeichen angeben, indem Sie die Escape-Klausel verwenden. Beispielsweise kann das vorherige Beispiel auch wie folgt angegeben werden:
Body.Trade.Company LIKE 'IBM$_Corp' ESCAPE '$'