TECH I.S.

SQL ANYおよびALL演算子


SQL ANYおよびALL演算子

ANYALL演算子を使用すると、1つの列の値と他の値の範囲を比較できます。

SQL ANY演算子

ANY演算子
  • 結果としてブール値を返します。
  • いずれかのサブクエリ値が条件を満たす場合にTRUEを返します。
ANYは、範囲内のいずれかの値に対して操作がtrueの場合、条件がtrueになることを意味します。

ANY構文

SELECT <em>column_name(s)</em> FROM <em>table_name</em> WHERE <em>column_name operator</em> ANY   (SELECT <em>column_name   </em>FROM <em>table_name   </em>WHERE <em>condition</em>);
注: *演算子*は、標準の比較演算子(=、<>、!=、>、>=、<、または <=)である必要があります。

SQL ALL演算子

ALL演算子:
  • 結果としてブール値を返します。
  • すべてのサブクエリ値が条件を満たす場合にTRUEを返します。
  • SELECTWHEREHAVINGステートメントで使用されます。
ALLは、範囲内のすべての値に対して操作がtrueである場合にのみ、条件がtrueになることを意味します。

SELECTを使用したALL構文

SELECT ALL <em>column_name(s)</em> FROM <em>table_name</em> WHERE <em>condition</em>;

WHEREまたはHAVINGを使用したALL構文

SELECT <em>column_name(s)</em> FROM <em>table_name</em> WHERE <em>column_name operator</em> ALL   (SELECT <em>column_name   </em>FROM <em>table_name   </em>WHERE <em>condition</em>);

注: *演算子*は、標準の比較演算子(=、<>、!=、>、>=、<、または <=)である必要があります。


デモデータベース

以下は、Northwindサンプルデータベースの"製品"テーブルからの抜粋です。

製品番号

商品名

サプライヤーID

カテゴリーID

ユニット

価格

1 chais 1 1 10箱×20袋 18
2 chang 1 1 24~12オンスのボトル 19
3 Aniseed Syrup 1 2 12 - 550 ml ボトル 10
4 Chef Anton's Cajun Seasoning 2 2 48 - 6オンスの瓶 22
5 Chef Anton's Gumbo Mix 2 2 36箱 21.35
6 おばあちゃんのボイセンベリースプレッド 3 2 12~8オンスの瓶 25
7 ボブおじさんの有機干し梨 3 7 12~1ポンドのパッケージ 30
8 ノースウッズクランベリーソース 3 2 12~12オンスの瓶 40
9 神戸牛 4 6 18~500gパッケージ 97

そして、"注文詳細"テーブルからの選択

注文明細ID

オーダーID

製品番号

1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40
6 10250 41 10
7 10250 51 35
8 10250 65 15
9 10251 22 6
10 10251 57 15

SQL ANYの例

次のSQLステートメントは、OrderDetailsテーブル内にQuantityが10に等しいレコードが見つかった場合に、ProductNameを一覧表示します(Quantity列に10の値があるため、TRUEが返されます)。

SELECT ProductName FROM Products WHERE ProductID = ANY   (SELECT ProductID   FROM OrderDetails   WHERE Quantity = 10);

自分で試してみる(開発準備中) »

次のSQLステートメントは、OrderDetailsテーブル内に99より大きい数量を持つレコードが見つかった場合に、ProductNameを一覧表示します(Quantity列に99より大きい値があるため、TRUEが返されます)。

SELECT ProductName FROM Products WHERE ProductID = ANY   (SELECT ProductID   FROM OrderDetails   WHERE Quantity > 99);

自分で試してみる(開発準備中)»

次のSQLステートメントは、OrderDetailsテーブル内にQuantityが1000を超えるレコードが見つかった場合にProductNameを一覧表示します(Quantity列には1000を超える値がないため、FALSEが返されます)。

SELECT ProductName FROM Products WHERE ProductID = ANY   (SELECT ProductID   FROM OrderDetails   WHERE Quantity > 1000);

自分で試してみる(開発準備中)»


SQL ALLの例

次のSQLステートメントは、すべての製品名を一覧表示します。

SELECT ALL ProductName FROM Products WHERE TRUE;

自分で試してみる(開発準備中)»

次のSQLステートメントは、OrderDetailsテーブルのすべてのレコードのQuantityが10の場合に、ProductNameを一覧表示します。もちろん、Quantity列には(10の値だけでなく)さまざまな値が含まれるため、これはFALSEを返します。

SELECT ProductName FROM Products WHERE ProductID = ALL   (SELECT ProductID   FROM OrderDetails   WHERE Quantity = 10);

自分で試してみる(開発準備中)»



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細