SQL ALL 演算子
1. SQL ALL 演算子
ALL 演算子は、ある値をサブクエリ(サブクエリ)によって返されたすべての値と比較するために使用されます。
ALL 演算子は、サブクエリのリザルトセット(結果セット)に含まれるすべての値が条件を満たす場合にのみ TRUE と評価されます。
この演算子は、通常 WHERE 文や HAVING 文とともに使用されます。
2. ALL の構文
SELECT カラム名(s)
FROM テーブル名
WHERE カラム名 演算子 ALL (サブクエリ); 注意:演算子 は、標準的な比較演算子(=、<>、!=、>、>=、<、または <=)である必要があります。
3. デモ用データベース
以下は、Northwind サンプルデータベースの「Products(製品)」テーブルからの抜粋です。
| ProductID | ProductName | Price |
|---|---|---|
| 1 | Chais | 18.00 |
| 2 | Chang | 19.00 |
| 3 | Aniseed Syrup | 10.00 |
| 4 | Chef Anton's Cajun Seasoning | 22.00 |
こちらは「OrderDetails(注文詳細)」テーブルの抜粋です。
| OrderDetailID | ProductID | Quantity |
|---|---|---|
| 1 | 11 | 12 |
| 2 | 42 | 10 |
| 3 | 72 | 5 |
| 4 | 14 | 9 |
4. SQL ALL の使用例
次の SQL は、「OrderDetails」テーブル内のすべてのレコードにおいて Quantity(数量)が 10 に等しい場合に、ProductName(製品名)を返します。
当然ながら、Quantity カラムには(10 以外の)多くの異なる値が含まれているため、このクエリは FALSE を返します。
実行例:
SELECT ProductName
FROM Products
WHERE ProductID = ALL (
SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10
);