ABAP Keyword Documentation → ABAP - Reference → Processing External Data → ABAP Database Accesses → Open SQL → Open SQL - Read Accesses → SELECT → SELECT - WHERE
WHERE - sql_cond
Other versions: 7.31 | 7.40 | 7.54
Syntax
... { {col1 {=|EQ|<>|NE|>|GT|<|LT|>=|GE|<=|LE}
{ {dobj}
| {col2}
|
{[ALL|ANY|SOME] subquery} }}
| {col [NOT] BETWEEN dobj1 AND dobj2}
| {col [NOT] LIKE dobj [ESCAPE esc]}
| {col [NOT] IN (dobj1, dobj2 ...)}
| {col [NOT] IN seltab}
| {col IS [NOT] NULL}
| {(cond_syntax)}
| {EXISTS subquery}
| {col [NOT] IN subquery} } ...
Effect
The logical expressions sql_cond in the WHERE condition are similar to the general
logical expressions for control statements. They consist of
relational expressions with relational operators and with predicate operators. The logical expressions of a WHERE condition can also be specified
dynamically.
Subqueries can be used too. Multiple relational
expressions of a WHERE condition can be joined as one expression using
AND or OR.
A logical expression can be negated using NOT
Each individual relational expression of the WHERE condition must always
contain at least one column col from one of the database tables or views listed after FROM as an operand. The same column names
(comp,
data_source~comp, tabalias~comp)
can be specified for col as when single columns are specified in the SELECT list. No
aggregate expressions,
SQL expressions, or columns of the type STRING, RAWSTRING, LCHR, or LRAW can be specified.
Note
For frequently used SELECT statements with an identical WHERE condition, an
index. In WHERE
conditions, the fields of the index should be expressed as equality comparisons and joined using the
AND operator. All the fields of an index that are behind a field, for which
a comparison other than = or EQ is specified in the WHERE clause, cannot be used for searching in the index.