[NOT ]
|
predicate | |||||||
(search-condition) | ||||||||
search-condition | AND
|
search-condition | ||||||
OR
|
This Dokument behandelt folgende Themen:
Eine search-condition
kann
aus einer einfachen Bedingung (predicate
)
bestehen oder aus mehreren
search-conditions
, die durch die
Boole’schen Operatoren AND
, OR
und NOT
verknüpft werden, wobei die Reihenfolge der Auswertung außerdem durch
entsprechende Klammerung bestimmt werden kann.
DEFINE DATA LOCAL 01 NAME (A20) 01 AGE (I2) END-DEFINE ... SELECT * INTO NAME, AGE FROM SQL-PERSONNEL WHERE AGE = 32 AND NAME > 'K' END-SELECT ...
Ein predicate
gibt eine
Bedingung an, die "wahr", "falsch" oder
"unbekannt" sein kann.
In einer search-condition
kann ein predicate
aus einer einfachen
oder komplexen Vergleichsoperation oder anderen Arten von Bedingung bestehen.
SELECT NAME, AGE INTO VIEW PERS FROM SQL-PERSONNEL WHERE AGE BETWEEN 20 AND 30 0R AGE IN ( 32, 34, 36 ) AND NAME LIKE '%er' ...
Anmerkung:
Das Prozentzeichen (%) kann zu Konflikten mit Natural-Terminalkommandos führen. In diesem Fall
müssen Sie als Steuerzeichen für Terminalkommandos ein anderes Zeichen als %
definieren (siehe Ändern des
Terminalkommando-Steuerzeichens ).
Die einzelnen predicates
sind auf den folgenden Seiten beschrieben (weitere Informationen zu
predicates
finden Sie in der
betreffenden Literatur). Entsprechend der obigen Syntax heißen sie wie folgt:
The individual predicates are explained in the following topics (for further information on predicates, please refer to the relevant literature). According to the syntax above, they are called as follows:
scalar-expression | comparison | scalar-expression | ||||
row-value-expression | = | row-value-expression | ||||
<> |
Ein comparison-predicate vergleicht zwei Werte oder einen Satz Werte mit einem anderen Satz Werte.
Siehe Informationen zu
scalar-expression
.
=
|
||
<
|
||
>
|
||
<=
|
||
>=
|
||
< >
|
comparison
kann einer
der folgenden Operatoren sein:
=
|
gleich |
---|---|
<
|
kleiner als |
>
|
größer als |
<=
|
kleiner gleich |
>=
|
größer gleich |
<>
|
ungleich |
(select-expression) |
Eine subquery
ist eine
select-expression
innerhalb einer
anderen select-expression
.
DEFINE DATA LOCAL 1 #NAME (A20) 1 #PERSNR (I4) END-DEFINE ... SELECT NAME, PERSNR INTO #NAME, #PERSNR FROM SQL-PERSONNEL WHERE PERSNR IN ( SELECT PERSNR FROM SQL-AUTOMOBILES WHERE COLOR = 'black' ) ... END-SELECT
Weitere Informationen siehe SELECT-Ausdrücke.
scalar-expression [NOT ] BETWEEN
scalar-expression AND
scalar-expression
|
Ein BETWEEN-predicate vergleicht einen Wert mit einem Bereich von Werten.
Siehe Informationen zu
scalar-expression
.
scalar-expression IS [NOT ] DISTINCT FROM
scalar-expression
|
||
row-value-expression
IS [NOT ]
DISTINCT FROM
row-value-expression
|
Ein DISTINCT-predicate vergleicht einen Wert mit einem anderen Wert oder einen Satz Werte mit einem anderen Satz Werte.
column-reference [NOT ]
LIKE
|
atom | [ESCAPE atom]
|
||
special-register |
Ein LIKE-predicate sucht nach Zeichenketten, die ein bestimmtes Muster haben.
Siehe Informationen zu
column-reference
,
atom
und special-register
.
column-reference IS [NOT ] NULL
|
Ein NULL-predicate prüft auf Nullwerte.
Wenn die Compiler-Option DB2ARRY
auf
ON
gesetzt ist, kann ein Natural-Array oder ein feststehender
Indexbereich eines Arrays als atom
angegeben werden. Der Natural SQL Compiler zerlegt dann das Array oder den
feststehenden Indexbereich in eine Liste mit skalaren
host-variables
.
Siehe Informationen zu
column-reference
.
scalar-expression [NOT ] IN
|
subquery | ||||
row-value-expression | |||||
row-value-expression
[NOT ] IN
subquery |
Ein IN-predicate vergleicht einen Wert oder einen Satz Werte mit einer Sammlung von Werten.
Siehe Informationen zu
scalar-expression
,
atom
und special-register
.
Siehe Informationen zu
subquery
.
scalar-expression | comparison |
|
subquery | ||||
row-value-expression | = |
|
subquery | ||||
row-value-expression | <> |
ALL |
subquery |
Ein quantified-predicate vergleicht einen Wert oder einen Satz Werte mit einer Sammlung von Werten.
Siehe Informationen zu
scalar-expression
,
comparison
und subquery
.
EXISTS
subquery
|
Ein EXISTS-predicate prüft, ob bestimmte Zeilen vorhanden sind.
Die Bedingung des EXISTS-predicate kann
nur erfüllt werden, wenn das Ergebnis der ausgewerteten
subquery
nicht leer ist, d.h. wenn
mindestens ein Datensatz (eine Zeile) in der FROM
-Tabelle der
subquery
die
WHERE
-Klausel-Suchbedingung dieser
subquery
erfüllt.
Beispiel für EXISTS
:
DEFINE DATA LOCAL 1 #NAME (A20) END-DEFINE ... SELECT NAME INTO #NAME FROM SQL-PERSONNEL WHERE EXISTS ( SELECT * FROM SQL-EMPLOYEES WHERE PERSNR > 1000 AND NAME < 'L' ) ... END-SELECT ...
Siehe Informationen zu
subquery
.
XMLEXISTS
( xquery-expression-constant
|
BY
REF |
) |
||
PASSING
xquery-argument,...
|
xquery-context-item-expression | ||
xquery-context-item-expression
AS identifier |
Das XMLEXISTS-predicate prüft, ob ein
XPATH
-Ausdruck eine Folge von einem oder mehreren
items
zurückgibt. Weitere Informationen
siehe IBM Db2 XML Guide.