Bedingungen

Eine Bedingung gibt eine Kombination von einem oder mehreren Ausdrücken und logischen (Booleschen) Operatoren an. Die OLAP-Ausdrucksyntax hat folgende Bedingungstypen:

Einfache Vergleichsbedingungen

Vergleichsbedingungen vergleichen einen Ausdruck mit einem anderen. Das Ergebnis eines derartigen Vergleichs kann TRUE, FALSE oder NULL sein.

Sie können die folgenden Vergleichsoperatoren verwenden:

Einfache Vergleichsoperatoren
Operator
Beschreibung
>
Größer als
>=
Größer als oder gleich
<
Kleiner als
<=
Kleiner als oder gleich
=
Gleich

!=
^=

Ungleich
<>
Größer oder kleiner als

Syntax

expr { > | >= | < | <= | = | != | ^= | <> } expr 

Argumente

expr kann ein beliebiger Ausdruck sein.

Beispiele

5 > 3 ist true, 4 != 5 ist true, 6 >= 9 ist false.

Gruppenvergleichsbedingungen

Eine Gruppenvergleichsbedingung gibt einen Vergleich mit einem oder allen Elementen in einer Liste oder Unterabfrage an.

Sie können die folgenden Vergleichsoperatoren verwenden:

Gruppenvergleichsoperatoren
Operator
Beschreibung
>
Größer als
>=
Größer als oder gleich
<
Kleiner als
<=
Kleiner als oder gleich
=
Gleich

!=
^=

Ungleich
<>
Größer oder kleiner als

ANY
SOME

Gibt True zurück, wenn ein oder mehrere Werte in der Liste übereinstimmen. Wenn keine Werte übereinstimmen, wird False zurückgegeben.
ALL
Gibt True zurück, wenn alle Werte in der Liste übereinstimmen. Wenn ein oder mehrere Werte nicht übereinstimmen, wird False zurückgegeben.

Syntax

expr
     { = | != | ^= | <> | > | < | >= | <= }
     { ANY | SOME | ALL }
     ({ expression_list | subquery })


Beispiele

5 >= ALL (5, 10, 15) ist true, 5 <> ANY (5, 10, 15) ist true.

(color, size) = SOME (('RED', 'L'), ('GREEN', 'M')) gibt true für große rote und mittlere grüne Elemente zurück.

Bereichsbedingungen

Der Operator BETWEEN testet, ob ein Wert in einem bestimmten Wertebereich liegt. Er gibt True zurück, wenn der getestete Wert größer als oder gleich einem niedrigeren Wert und kleiner als oder gleich einem hohen Wert ist.

Syntax

expr [ NOT ] BETWEEN expr AND expr

Beispiel

7 NOT BETWEEN 10 AND 15 ist true.

Mehrfachbedingungen

Konjunktionen vergleichen einen einzelnen Ausdruck mit zwei Bedingungen.

Konjunktionen
Operator
Beschreibung
AND
Gibt TRUE zurück, wenn beide Komponentenbedingungen TRUE sind. Gibt FALSE zurück, wenn eine der Bedingungen FALSE ist. Sonst wird UNKNOWN zurückgegeben.
ODER
Gibt TRUE zurück, wenn eine Komponentenbedingung TRUE ist. Gibt FALSE zurück, wenn beide Bedingungen FALSE sind. Sonst wird UNKNOWN zurückgegeben.

Syntax

expr operator condition1 { AND | OR } condition2 

Beispiel

5 < 7 AND 5 > 3 ist true; 5 < 3 OR 10 < 15 ist true.

Negation

Der NOT-Operator kehrt die Bedeutung einer Bedingung um. Er gibt TRUE zurück, wenn die Bedingung FALSE ist. Er gibt FALSEzurück , wenn sie TRUE ist. Wenn die Bedingung UNKNOWN ist, bleibt sie UNKNOWN.

Syntax

NOT {BETWEEN | IN | LIKE | NULL }

Beispiel

5 IS NOT NULL ist true; 5 NOT IN (5, 10, 15) ist false.

Spezielle Bedingungen

Der IS-Operatortest auf spezielle Bedingungen, wie Nullen, Unendlichkeit und Werte, die keine Zahl sind.

Spezielle Bedingungsoperatoren
Operator Beschreibung
IS INFINITE Gibt TRUE zurück, wenn der Ausdruck endlos ist. Sonst wird FALSE zurückgegeben.
IS NAN Gibt TRUE zurück, wenn der Ausdruck keine Zahl ist, sonst FALSE.
IS NULL Gibt TRUE zurück, wenn der Ausdruck Null ist, sonst FALSE.

Syntax

expr IS [ NOT ] NULL

Beispiel

13 IS NOT NULL ist true.

Mustervergleichsbedingungen

Die Mustervergleichsbedingungen vergleichen Zeichendaten. Es gibt zwei Gruppen von Operatoren in dieser Kategorie: LIKE und REGEXP_LIKE.

LIKE-Operatoren

Die LIKE-Operatoren geben einen Test mit Mustervergleich an. Während der Gleichheitsoperator (=) einen Zeichenwert genau mit einem anderen vergleicht, können die LIKE- Operatoren Muster vergleichen, die mit bestimmten Mustervergleichszeichen (Platzhalterzeichen) definiert werden.

Sie können unter den folgenden LIKE-Operatoren wählen:

LIKE-Mustervergleichsoperatoren
Operator Beschreibung
LIKE

Verwendet Zeichen im Eingabezeichensatz.

LIKEC Verwendet vollständige Unicode-Zeichen. Ein ergänzendes Unicode-Zeichen wird als zwei Zeichen behandelt.
LIKE2 Verwendet UCS2-Zeichensatzcodes. Ein ergänzendes Unicode-Zeichen wird als ein Zeichen behandelt.
LIKE4 Verwendet UCS4-Zeichensatzcodes. Ein zusammengesetztes Zeichen wird als ein Zeichen behandelt.

Syntax

char1 [ NOT ] ( LIKE | LIKEC | LIKE2 | LIKE4 )
  char2 [ ESCAPE esc_char ]

Argumente

char1 ist ein Textausdruck für den Suchwert.

char2 ist ein Textausdruck für das Muster. Das Muster kann diese Platzhalterzeichen enthalten:

esc_char ist ein Textausdruck, im Allgemeinen ein Literal, der ein Zeichen umfasst. Dieses Escape-Zeichen identifiziert ein Unterstreichungszeichen oder Prozentzeichen in dem Muster als literales Zeichen und nicht als Platzhalterzeichen. Sie können auch nach dem Escape-Zeichen selbst suchen, indem Sie es wiederholen. Wenn z.B. @ das Escape-Zeichen ist, können Sie mit @% nach % und mit @@ nach @ suchen.

Beispiele

'Ducks' LIKE 'Duck_' und 'Ducky' LIKE 'Duck_' sind true.

'Duckling' LIKE 'Duck_' ist false.

'Duckling' LIKE 'Duck%' ist true.

REGEXP_LIKE-Operator

REGEXP_LIKE führt den Vergleich von regulären Ausdrücken anstelle des einfachen Mustervergleichs durch, der von LIKE vorgenommen wird. Dieser Operator wertet Zeichenfolgen mit Zeichen aus, wie von dem Eingabezeichensatz definiert.

Reguläre Oracle-Ausdrücke entsprechen dem IEEE Portable Operating System Interface-(POSIX-)Standard für reguläre Ausdrücke und den Unicode Regular Expression Guidelines des Unicode Consortiums. Weitere Informationen über reguläre Ausdrücke finden Sie in Oracle Database SQL Reference.

Syntax

REGEXP_LIKE(source_char, pattern
            [, match_parameter ]
           )

Argumente

source_char ist der Ausdruck, der gesucht wird. Er kann einen der folgenden Datentypen aufweisen CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB oder NCLOB.

Muster ist der Ausdruck, nach dem gesucht werden soll. Er ist im Allgemeinen ein Textliteral und kann folgende Datentypen haben CHAR, VARCHAR2, NCHAR oder NVARCHAR2. Er kann bis zu 512 Byte umfassen.

match_parameter ist ein Textliteral, mit dem Sie das Standardübereinstimmungsverhalten der Funktion ändern können. Sie können einen oder mehrere der folgenden Werte angeben:

Beispiel

REGEXP_LIKE (first_name, '^Ste(v|ph)en$') stimmt mit Steven und Stephen, jedoch nicht mit Stevens oder Esteven, in first_name überein.