トップDML選択(副問合せ) ≫ ALL句を用いた副問合せ

ALL句を用いた副問合せ

ALL句は指定した値と副問合せの結果を比較するときに使用します.このとき,比較演算子の条件がすべて真になるとき真,条件が一つでも偽になるとき偽になります.

ALL

ALL句を用いた副問合せの書き方は以下とおりです.

SELECT 列名1, 列名2, ...
FROM テーブル名
WHERE 列名 演算子 ALL (
    SELECT 列名
    FROM テーブル名
    [WHERE 条件式など]
)

SQL サンプル

例としてALL句を使用して受注テーブルからレコードを抽出します.

受注

注文番号商品コード受注個数
01-101A001100
01-102A002200
01-103B001300
01-104B002400
02-101A001150
02-102A002350

SQL

SELECT * FROM 受注
WHERE 受注個数 > ALL (
    SELECT 受注個数
    FROM 受注
    WHERE 商品コード = 'A002' (
)

結果

注文番号商品コード受注個数
01-104B002400

まず副問合せによって受注テーブルの受注個数 (200, 350) が返されます.次にALL句によって,受注個数が200よりも大きく,かつ350よりも大きいレコードを抽出します.すなわちこの場合,受注個数が350よりも大きいレコードが抽出されます.