概要
ここでは、SQL SELECT句の基本について触れておきます。 サンプルに基づいて、最大1行、SELECT SINGLE、INTO TABLE、SELECT END SELECTについて説明します。
まずはサンプルコードをご覧ください。
サンプルコード
DATA: wa_mara TYPE mara, it_mara TYPE TABLE OF mara. *1. 最初の1行だけ取得 SELECT * FROM mara UP TO 1 ROWS INTO wa_mara. ENDSELECT. *2. 最初の1行だけ取得 SELECT SINGLE * FROM mara INTO wa_mara. *3. 1行ずつ全てのレコードを取得 SELECT * FROM mara INTO wa_mara. "処理記述 "IF XXXXXXX ENDSELECT. *4. 全てのレコードを一度に取得 SELECT * FROM mara INTO TABLE it_mara. *5. 列を指定して取得 SELECT SINGLE matnr mtart FROM mara INTO (wa_mara-matnr,wa_mara-mtart).
説明
1.複数のレコードを取得するが、UP TO 1 ROWSオプションで2行目の取得になった場合はSQLは終了します。 したがって、これは、1つのレコードのみを取得する場合に使用されるSQLです。
2. 1つのレコードのみを取得するSQLです。 SINGLEオプションとUP TO 1 ROWSオプションの違いについてさまざまな議論がありますが、主キーを指定して検索する場合はSINGLEオプションを使用し、そうでない場合はUP TO 1 ROWSオプションを使用します。
3. 1つのレコードを取得した後、何らかの処理を行ってから次の処理を行う場合に使用します。
ただし、レコード数が少ない場合は有効ですが、レコード数が数万の場合はパフォーマンスが低下するため、お勧めしません。
4.フェッチしたレコードを内部テーブルに格納するSQLです。 一番使われると思います。
5.取得する項目を複数指定する場合のSQLです。 複数のアイテムをフェッチする場合、INTO句の後に括弧()が必要です。
最近のコメント