Eine Bedingung gibt eine Kombination von einem oder mehreren Ausdrücken und logischen (Booleschen) Operatoren an. Die OLAP-Ausdrucksyntax hat folgende Bedingungstypen:
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:
Operator |
Beschreibung |
|---|---|
> |
Größer als |
>= |
Größer als oder gleich |
< |
Kleiner als |
<= |
Kleiner als oder gleich |
= |
Gleich |
|
Ungleich |
<> |
Größer oder kleiner als |
expr { > | >= | < | <= | = | != | ^= | <> } expr
expr kann ein beliebiger Ausdruck sein.
5 > 3 ist true, 4 != 5 ist true, 6 >= 9 ist false.
Eine Gruppenvergleichsbedingung gibt einen Vergleich mit einem oder allen Elementen in einer Liste oder Unterabfrage an.
Sie können die folgenden Vergleichsoperatoren verwenden:
Operator |
Beschreibung |
|---|---|
> |
Größer als |
>= |
Größer als oder gleich |
< |
Kleiner als |
<= |
Kleiner als oder gleich |
= |
Gleich |
|
Ungleich |
<> |
Größer oder kleiner als |
|
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. |
expr
{ = | != | ^= | <> | > | < | >= | <= }
{ ANY | SOME | ALL }
({ expression_list | subquery })
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.
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.
expr [ NOT ] BETWEEN expr AND expr
7 NOT BETWEEN 10 AND 15 ist true.
Konjunktionen vergleichen einen einzelnen Ausdruck mit zwei Bedingungen.
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. |
expr operator condition1 { AND | OR } condition2
5 < 7 AND 5 > 3 ist true; 5 < 3 OR 10 < 15 ist true.
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.
NOT {BETWEEN | IN | LIKE | NULL }
5 IS NOT NULL ist true; 5 NOT IN (5, 10, 15) ist false.
Der IS-Operatortest auf spezielle Bedingungen, wie Nullen, Unendlichkeit und Werte, die keine Zahl sind.
| 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. |
expr IS [ NOT ] NULL
13 IS NOT NULL ist true.
Die Mustervergleichsbedingungen vergleichen Zeichendaten. Es gibt zwei Gruppen von Operatoren in dieser Kategorie: LIKE und REGEXP_LIKE.
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:
| 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. |
char1 [ NOT ] ( LIKE | LIKEC | LIKE2 | LIKE4 ) char2 [ ESCAPE esc_char ]
char1 ist ein Textausdruck für den Suchwert.
char2 ist ein Textausdruck für das Muster. Das Muster kann diese Platzhalterzeichen enthalten:
Ein Unterstreichungszeichen (_) entspricht genau einem Zeichen in dem Wert (im Gegensatz zu einem Byte in einem Mehr-Byte-Zeichensatz).
Ein Prozentzeichen (%) kann null oder mehr Zeichen in dem Wert entsprechen (im Gegensatz zu Byte in einem Mehr-Byte-Zeichensatz).
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.
'Ducks' LIKE 'Duck_' und 'Ducky' LIKE 'Duck_' sind true.
'Duckling' LIKE 'Duck_' ist false.
'Duckling' LIKE 'Duck%' ist true.
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.
REGEXP_LIKE(source_char, pattern
[, match_parameter ]
)
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:
c: Groß-/Kleinschreibung beachten.
iGroß-/Kleinschreibung muss nicht beachtet werden.
m: Behandelt die Quellzeichenfolge als aus mehreren Zeilen bestehend. REGEXP_LIKE interpretiert ^ und $ als Anfang bzw. Ende einer Zeile an beliebiger Stelle in der Quellzeichenfolge und nicht nur am Anfang oder Ende der ganzen Quellzeichenfolge. Standardmäßig behandeltREGEXP_LIKE die Quellzeichenfolge als eine einzelne Zeile.
n: Das Zeilenvorschubzeichen gehört zu den Zeichen, das mit einem Punkt (Platzhalterzeichen) übereinstimmt. Standardmäßig ist dies nicht der Fall.
x: Leerstellen ignorieren
REGEXP_LIKE (first_name, '^Ste(v|ph)en$') stimmt mit Steven und Stephen, jedoch nicht mit Stevens oder Esteven, in first_name überein.
Copyright © 2003, 2007, Oracle. All rights reserved. Alle Rechte vorbehalten,