SELECT句の基本的な使い方

  SQL

概要

ここでは、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句の後に括弧()が必要です。