The search-condition represents a truth value in an SQL statement.
Expansion of search-condition
►►─┬───────┬─┬─ between-predicate ────┬───────────────────────────────────────► └─ NOT ─┘ ├─ comparison-predicate ─┤ ├─ exists-predicate ─────┤ ├─ in-predicate ─────────┤ ├─ like-predicate ───────┤ ├─ null-predicate ───────┤ ├─ quantified-predicate ─┤ └─ ( search-condition ) ─┘ ►─┬────────────────────────────────────────────────────┬─────────────────────►◄ │ ┌────────────────────────────────────────────────┐ │ └─▼─┬─ AND ─┬─┬───────┬─┬─ between-predicate ────┬─┴─┘ └─ OR ──┘ └─ NOT ─┘ ├─ comparison-predicate ─┤ ├─ exists-predicate ─────┤ ├─ in-predicate ─────────┤ ├─ like-predicate ───────┤ ├─ null-predicate ───────┤ ├─ quantified-predicate ─┤ └─ ( search-condition ) ─┘
Reverses the truth value, if known, of the operand that follows; that is:
Represents the truth value resulting from the evaluation of a BETWEEN predicate. For expanded between-predicate syntax, see Expansion of Between-predicate.
Represents the truth value resulting from the evaluation of a comparison predicate. For expanded comparison-predicate syntax, see Expansion of Comparison-predicate.
Represents the truth value resulting from the evaluation of an EXISTS predicate. For expanded exists-predicate syntax, see Expansion of Exists-predicate.
Represents the truth value resulting from the evaluation of an IN predicate. For expanded in-predicate syntax, see Expansion of In-predicate.
Represents the truth value resulting from the evaluation of a LIKE predicate. For expanded like-predicate syntax, see Expansion of Like-predicate.
Represents the truth value resulting from the evaluation of a NULL predicate. For expanded null-predicate syntax, see Expansion of Null-predicate.
Represents the truth value resulting from the evaluation of a quantified predicate. For expanded quantified-predicate syntax, see Expansion of Quantified-predicate.
Specifies another search condition to be used as a single operand in the search condition. To be manipulated as a single operand, the search condition must be enclosed in parentheses.
Specifies that both the operand preceding the operator and the operand following the operator must be true for the search condition to be true.
Specifies that either the operand preceding the operator, the operand following the operator, or both operands must be true for the search condition to be true.
A search condition in an SQL statement specifies criteria used to restrict the data processed by the statement:
The WHERE parameter occurs in query-specification and in the DELETE, SELECT, and UPDATE statements.
The HAVING parameter occurs in query-specification and the SELECT statement.
The CHECK parameter occurs in the CREATE TABLE statement. The ADD CHECK parameter occurs in the ALTER TABLE statement.
Restrictions on search-condition in a CHECK or ADD CHECK Parameter
In the CHECK parameter of the CREATE TABLE statement or the ADD CHECK parameter of the ALTER TABLE statement:
Truth Values
The result of a search condition is one of three possible truth values: true, false, or unknown. The unknown value occurs only when the search condition includes one or more null values.
CA IDMS obtains the result by evaluating the search condition for a particular row in a table or a particular table grouping. Processing occurs according to the results, as described in the following table:
|
If the result is: |
CA IDMS: |
|---|---|
|
True |
Continues processing the statement for the row or group
|
|
False |
CA IDMS does not process the statement for the row or group |
|
Unknown
|
|
Truth Table for AND
The result of the AND operation for each possible combination of operands is given by the following truth table:
|
AND |
True |
False |
Unknown |
|---|---|---|---|
|
True |
True |
False |
Unknown |
|
False |
False |
False |
False |
|
Unknown |
Unknown |
False |
Unknown |
Truth Table for OR
The result of the OR operation for each possible combination of operands is given by the following truth table:
|
OR |
True |
False |
Unknown |
|---|---|---|---|
|
True |
True |
True |
True |
|
False |
True |
False |
Unknown |
|
Unknown |
True |
Unknown |
Unknown |
Order of Evaluation
After evaluating the individual operands, CA IDMS performs the operations in a search condition in the following order:
You can use parentheses to override the default order of evaluation. Operations in parentheses are performed first.
For example, assuming the value in :SALARY is 35,000, the result of the following search condition is true:
:salary > 20000 or :salary = 0 and :salary < 30,000
When the OR operation is enclosed in parentheses, the result of the expression is false:
(:salary > 20000 or :salary = 0) and :salary < 30,000
A Single Operand
The following ALTER TABLE statement directs CA IDMS to store only values less than or equal to 10 in the BONUS_PERCENT column of the POSITION table. The search condition in the ADD CHECK parameter consists of a single operand (a comparison predicate).
alter table position add check (bonus_percent <= 10);
Two Operands with OR
The following SELECT statement returns the number of employees in each department that has either five or more employees or no employees:
select dept_id, count(emp_id)
from employee
group by dept_id
having count(emp_id) >= 5
or count(emp_id) = 0;
Multiple Operands
The following SELECT statement identifies the project leaders of projects that were scheduled to have started by now but have not and that have no assigned employees. The search condition in the first WHERE parameter includes three operands. The first is a comparison predicate, the second is a NULL predicate, and the third is an EXISTS predicate with the unary operator NOT.
select proj_leader_id
from project p
where est_start_date < current date
and act_start_date is null
and not exists
(select emp_id
from employee e
where e.proj_id = p.proj_id);
|
Copyright © 2014 CA.
All rights reserved.
|
|