WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Komplexe ESQL-Vergleichsoperatoren

ESQL unterstützt verschiedene Operatoren für komplexe Vergleiche.

Informationen zu einfachen Vergleichen mit ESQL finden Sie im Abschnitt Einfache ESQL-Vergleichsoperatoren.

BETWEEN-Operator
Mit dem Operator BETWEEN können Sie feststellen, ob ein Wert innerhalb zweier Grenzwerte liegt.
Syntaxdiagramm lesenSyntaxdiagramm überspringen
BETWEEN-Operator

                               .-ASYMMETRIC-.   
>>-Ausdruck--+-----+--BETWEEN--+------------+------------------->
             '-NOT-'           '-SYMMETRIC--'   

>--Endpunkt_1--AND--Endpunkt_2---------------------------------><

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. Diese Regeln werden im Abschnitt Implizite Umsetzungen beschrieben.

Operator EXISTS
Syntaxdiagramm lesenSyntaxdiagramm überspringen
EXISTS-Operator

>>-Operand--(--Listenausdruck--)-------------------------------><

Der Operator EXISTS gibt einen Booleschen Wert zurück, der angibt, ob eine SELECT-Funktion einen oder mehrere Werte (TRUE) oder keinen Wert (FALSE) zurückgegeben hat.
EXISTS(SELECT * FROM etwas WHERE Prädikat)
IN-Operator
Mit dem Operator IN können Sie feststellen, ob ein Wert einem der in einer Liste enthaltenen Werte entspricht.
Syntaxdiagramm lesenSyntaxdiagramm überspringen
IN-Operator

                              .-,---------.      
                              V           |      
>>-Operand_1--+-----+--IN--(----Operand_2-+--)-----------------><
              '-NOT-'                            

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. Diese Regeln werden im Abschnitt Implizite Umsetzungen beschrieben.

Operand_1 muss einen skalaren Wert ergeben. Operand_2 kann eine Folge von Ausdrücken sein, die skalare Wertetyps zurückgeben, die mit Operand_1 kompatibel sind, oder er kann ein einzelner Ausdruck sein, der eine Liste (LIST) zurückgibt. Handelt es sich um eine Liste, die von einer SELECT-Funktion zurückgegeben wird, kann die SELECT-Klausel nur ein einzige Spalte enthalten und jede Zeile (ROW) in dieser Spalte wird auf Übereinstimmung mit Operand_1 verglichen.

Bei den folgenden Beispielen handelt es sich um eine Folge von Ausdrücken.
  • 'Result1' wird auf TRUE gesetzt, da 30 nicht in der Liste enthalten ist:
    SET OutputRoot.XMLNSC.Top.Result1 = 30 NOT IN(34, 42, 45)
  • 'Result2' wird auf TRUE gesetzt, wenn 'var1' in 'var2', 'var3' oder 'var4' gefunden wird:
    SET OutputRoot.XMLNSC.Top.Result2 = var1 IN(var2, var3, var4);
Bei den folgenden Beispielen handelt es sich um Listen mit nur je einer Spalte.
  • 'Result3' wird auf TRUE gesetzt, wenn 42 in dem von der SELECT-Anweisung zurückgegebenen Ergebnis enthalten ist:
    SET OutputRoot.XMLNSC.Top.Result3 = 42 IN(
        SELECT A FROM InputRoot.XMLNSC.Top.a[] AS A);
  • 'Result4' wird auf TRUE gesetzt, da 42 in der Liste enthalten ist:
    SET OutputRoot.XMLNSC.Top.Result4 = 42 IN(
        LIST{34,36,37,38,39,40,41,42,43,44});
  • 'Result5' wird auf TRUE gesetzt, wenn 'var1' in einem der test-Elemente oder in einem der ihnen unmittelbar untergeordneten Elemente enthalten ist:
    SET OutputRoot.XMLNSC.Top.Result5 = var1 IN(
        InputRoot.XMLNSC.Top.test[]);
IS-Operator
Mit dem Operator IS prüfen Sie, ob ein Ausdruck einen Sonderwert zurückgegeben hat.
Syntaxdiagramm lesenSyntaxdiagramm überspringen
IS-Operator

                          .-TRUE-------.   
>>-Operand --IS--+-----+--+-FALSE------+-----------------------><
                 '-NOT-'  +-INF--------+   
                          +-+INF-------+   
                          +- -INF------+   
                          +-INFINITY---+   
                          +-+INFINITY--+   
                          +- -INFINITY-+   
                          +-NAN--------+   
                          +-NULL-------+   
                          +-NUM--------+   
                          +-NUMBER-----+   
                          '-UNKNOWN----'   

Mit dem Operator IS soll primär festgestellt werden, ob ein Wert gleich NULL ist. Mit dem Vergleichsoperator (=) ist diese Überprüfung nicht möglich, da ein Vergleich eines beliebigen Werts mit NULL immer NULL ergibt.

Darüber hinaus können Sie mit dem Operator IS auch feststellen, ob ein Wert TRUE oder FALSE ist, und Dezimalwerte auf bestimmte Werte überprüfen. Diese Werte werden in Großbuchstaben, Kleinbuchstaben oder gemischter Schreibweise mit INF, +INF, -INF, NAN (keine Zahl) und NUM (eine gültige Zahl) angegeben. 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.

LIKE-Operator
Mit dem Operator LIKE können Sie nach Zeichenfolgen suchen, die mit einem bestimmten Muster übereinstimmen.
Syntaxdiagramm lesenSyntaxdiagramm überspringen
LIKE-Operator

>>-Quelle--+-----+--LIKE--Muster--+-----------------------+----><
           '-NOT-'                '-ESCAPE--Escapezeichen-'   

Das Ergebnis ist TRUE, wenn keiner der Operanden NULL ist und der Operand Quelle mit dem Operanden 'Muster' übereinstimmt. Das Ergebnis ist FALSE, wenn keiner der Operanden NULL ist und der Operand Quelle nicht mit dem Operanden 'Muster' übereinstimmt. 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:

  • Das Unterstreichungszeichen steht für ein einzelnes Zeichen.
    Mit dem folgenden Ausdruck werden als Übereinstimmungen beispielsweise IBM® und IGI, nicht jedoch International Business Machines oder IBM Corp zurückgegeben:
    Body.Trade.Company LIKE 'I__'
  • Das Prozentzeichen % steht für kein oder mehrere Zeichen.
    Der folgende Ausdruck gibt als Übereinstimmungen beispielsweise IBM, IGI, International Business Machines und IBM Corp zurück:
    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 '$'
Operator SINGULAR
Syntaxdiagramm lesenSyntaxdiagramm überspringen
SINGULAR-Operator

>>-Operand--(--Listenausdruck--)-------------------------------><

Der Operator SINGULAR gibt den Booleschen Wert TRUE (wahr) zurück, wenn die Liste genau ein Element enthält, andernfalls gibt er FALSE (falsch) zurück.
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:21:27


ReferenzthemaReferenzthema | Version 8.0.0.5 | ak01045_