SELECT - WHERE
Short Reference
ABAP Syntax ... [ FOR ALL ENTRIES
IN itab ] WHERE sql_cond ... .
What does it do? The addition WHERE restricts the number of lines
included in the result set by the statement SELECT , by using a
logical expression sql_cond . The logical
expression compares the content of columns in the database with the
content of ABAP data objects, or with the content of other columns. The
optional addition FOR ALL ENTRIES
can be used to compare the content of a column in the database with a
component with all lines of a structured internal table itab .
The logical expression sql_cond is either true, false, or
unknown. The expression is unknown if one of the columns involved in the
database contains a null value and is
evaluated with another comparison as IS
NULL . A row is only included in the results set if the logical
expression is true.
Except for columns of type STRING or RAWSTRING plus
LCHR or LRAW , all columns of the database tables or
views listed after FROM
can be evaluated after the WHERE condition. The columns do
not necessarily have to be a part of the results set.
Latest notes: The client ID cannot
be queried in the WHERE condition, if automatic
client handling is not deactivated
using the addition CLIENT SPECIFIED after
FROM . This is usually tested by the syntax check. If the
client ID is queried in the WHERE condition and CLIENT
SPECIFIED is not specified (which is sometimes the case when using
alternative table names, in joins, and when specified dynamically),
automatic client handling is not switched off. In this case, there are
two conditions for the client column: the implicit condition of the
automatic client handler for the current client and the explicitly
specified condition. If the current client is not specified in the
explicitly specified condition, the result set is empty.
The WHERE condition of the SELECT statement described
here includes the WHERE conditions of the Open SQL
statements DELETE ,
OPEN CURSOR , and UPDATE .
The logical expressions of the WHERE condition can also all be
used after the addition HAVING , and
sometimes in the ON condition of a Join expression after the
addition FROM .
If the database table is accessed with generic
SAP buffering , the buffered area must
be fully specified in the WHERE condition, otherwise buffering is
ignored.
If the database tables are accessed using single record buffering, the
conditions joined using AND in the WHERE condition must be
listed for all key fields of the primary key, otherwise buffering is
ignored.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved