ALL句は指定した値と副問合せの結果を比較するときに使用します.このとき,比較演算子の条件がすべて真になるとき真,条件が一つでも偽になるとき偽になります.
ALL句を用いた副問合せの書き方は以下とおりです.
SELECT 列名1, 列名2, ...
FROM テーブル名
WHERE 列名 演算子 ALL (
SELECT 列名
FROM テーブル名
[WHERE 条件式など]
)
例としてALL句を使用して受注テーブルからレコードを抽出します.
受注
注文番号 | 商品コード | 受注個数 |
---|---|---|
01-101 | A001 | 100 |
01-102 | A002 | 200 |
01-103 | B001 | 300 |
01-104 | B002 | 400 |
02-101 | A001 | 150 |
02-102 | A002 | 350 |
SQL
SELECT * FROM 受注
WHERE 受注個数 > ALL (
SELECT 受注個数
FROM 受注
WHERE 商品コード = 'A002' (
)
結果
注文番号 | 商品コード | 受注個数 |
---|---|---|
01-104 | B002 | 400 |
まず副問合せによって受注テーブルの受注個数 (200, 350) が返されます.次にALL句によって,受注個数が200よりも大きく,かつ350よりも大きいレコードを抽出します.すなわちこの場合,受注個数が350よりも大きいレコードが抽出されます.