Quantified Predicate (quantified_predicate)
By specifying a quantified predicate (quantified_predicate
), you can compare a value or list of values to a set of values or value lists.
Syntax
<quantified_predicate> ::=
<expression> <comp_op> <quantifier> <expression_list>
| <expression> <comp_op> <quantifier> <subquery>
| <expression_list> <equal_or_not> <quantifier> (<expression_list>,...)
| <expression_list> <equal_or_not> <quantifier> <subquery>The following operators are available for comparing values:
Syntax
<comp_op> ::=
<
| >
| <>
| !=
| =
| <=
| >=
| ~= <! for computers with ASCII code !>
| ~< <! for computers with ASCII code !>
| ~> <! for computers with ASCII code !>Only the following operators are available for comparing value lists:
Syntax
<equal_or_not> ::=
<>
| =
| ~= <! for computers with ASCII code !>The quantified predicate can be qualified with ALL
, SOME
or ANY
.
Syntax
<quantifier> ::=
ALL
| SOME
| ANYSQL Tutorial, Subquery: Inner Queries
The subquery
must supply a result table that contains the same number of columns as the number of values created by the expression (expression
or expression_list
) on the left of the operator.
Each list of values (expression_list
) specified to the right of the equal_or_not
comparison operator must contain the same number of values as specified in the value list in front of the equal_or_not
operator.
Let x
be the result of the first value expression
and S
the result of the subquery or sequence of values. S
is a set of s
values. The value x
and
the values in S
must be comparable with each other.
If a value list (expression_list
) is specified on the left of the comparison operator equal_or_not
, then let x
be the value list comprising the results of the values x1, x2, ..., xn
of
this value list. Let S
be the result of the subquery consisting of a set of value lists s
or a sequence of value lists s
. A value list s
consists of the results of the values s1,
s2, ..., sn
.
A value xm
must be comparable with all values sm
.
x=s
is true if xm=sm, m=1,...,n
x<>s
is true, if there is at least one m
for which xm<>sm
x <equal_or_not> s
is undefined, if there is no m
for which xm <equal_or_not>
sm is false, and if there is at least one m
for which xm <equal_or_not>
sm
is undefined. If one xm
or one sm
is a NULL
value, or if the result of the subquery is empty, then x <equal_or_not> y
is undefined.
The entry '------'
in the list below means that no statement can be made if only the result of the comparison with one s
is known.
x <compare> <quantifier> S, whereby <compare> ::= <comp_op> | <equal_or_not>
<quantifier> ::= ALL |
<quantifier> ::= ANY | SOME |
|
|---|---|---|
S is empty |
True |
False |
|
------ |
True |
|
True |
True |
|
Undefined |
|
S contains |
Undefined |
True |
|
False |
------ |
|
False |
False |
|
Undefined |
|
S contains |
False |
Undefined |