SELECT select clause [INTO clause] FROM from clause [WHERE cond1] [GROUP BY fields1] [HAVING cond2] [ORDER BY fields2].
In some cases, the syntax rules that apply to Unicode programs are different than those for non-Unicode programs. Siehe Open SQL and Unicode.
The syntax check performed in an ABAP Objects context is stricter than in other ABAP areas. See Short Forms Not Allowed and * Work Areas Not Allowed.
Reads a selection and/or a summary of data from one or more database tables
and/or
views (see relational database). SELECT
is an Open SQL statement.
Each SELECT statement consists of a series of clauses, each with a differen task:
The SELECT clause select clause describes
The INTO clause INTO clause determines the target area into which the selected data is read. If the target area is an internal table, the INTO clause specifies:
The INTO clause can also occur after the FROM clause. You may omit it if
The data, if it exists in the database, is then made available using the table work area
dbtab. The statement is then processed further like the SELECT * INTO dbtab FROM dbtab statement, which has the same effect.
If the result of the selection is a table, the data is normally read line by line (for further information,
see INTO clause) in
a processing loop, which is introduced with SELECT and
concludes with ENDSELECT.
The loop is processed once for each line that is read. If you want the result of the selection to be a single record, there is no concluding ENDSELECT statement.
The FROM clause FROM clause specifies the source of the data (database tables or views), from which you want to select the data. It also specifies the:
The
WHERE clause cond1
specifies the conditions that the result of the selection must satisfy. By default, only data from the
current client is selected (without you having to specify the client field specifically in the
WHERE clause). If you want to select data from several clients,
you must use the ... CLIENT SPECIFIED addition in the FROM clause.
The GROUP BY clause
fields1 combines groups of lines into single lines of
the result table. A group is a set of records with the same value of each database field listed in the GROUP BY clause.
The HAVING clause
cond2 specifies conditions for the combined lines of the result table.
The ORDER BY clause
fields2 specifies how the records in the result table should be arranged.
The system field SY-DBCNT contains the number of lines
read so far ecah time the SELECT statement is executed.
After ENDSELECT, SY-DBCNT
contains the total number of records read.
The Return Code is set as follows:
The SELECT COUNT( * ) FROM ... statement returns a result
table containing a single line with the result 0 if there are no records in the database table that
meet the selection criteria. In an exception to the above rule, SY-SUBRC
is set to 4 in this case, and SY-DBCNT to zero.
Displaying the passenger list for Lufthansa flight 0400 on 2/28/1995:
DATA: WA_SBOOK TYPE SBOOK.
SELECT * FROM SBOOK INTO WA_SBOOK
WHERE
CARRID
= 'LH ' AND
CONNID = '0400'
AND
FLDATE = '19950228'
ORDER BY PRIMARY KEY.
WRITE: / WA_SBOOK-BOOKID, WA_SBOOK-CUSTOMID,
WA_SBOOK-CUSTTYPE, WA_SBOOK-SMOKER,
WA_SBOOK-LUGGWEIGHT, WA_SBOOK-WUNIT,
WA_SBOOK-INVOICE.
ENDSELECT.
Performance:
Storing database tables in a local buffer (see SAP buffering) can lead to
considerable time savings in a client/server environment, since the access time across the network is considerably higher than that required to access a locally-buffered table.
OPEN CURSOR, FETCH and CLOSECURSOR
Reading Data