SQL > SQL コマンド > EXISTS

EXISTS は、内部クエリがどのかたまりを返すかをテストするためにサブクエリで使用されるブール演算子です。内部クエリが何かを返す場合、外部クエリが進行します。それでない場合、外部クエリは実行されず、SQLステートメント全体は何も返しません。

構文

EXISTS の構文は次のとおりです::

SELECT "フィールド名1"
FROM "テーブル名1"
WHERE EXISTS
(SELECT *
FROM "テーブル名2"
WHERE "条件");

内部クエリでは*の代わりに、1つまたは複数の列を選択できることに注意してください。その効果は同じです。

私たちの例では、以下のテーブルを使用します。

Store_Information テーブル
 Store_Name  Sales  Txn_Date 
 Los Angeles 1500  Jan-05-1999 
 San Diego 250  Jan-07-1999 
 Los Angeles 300  Jan-08-1999 
 Boston 700  Jan-08-1999 

Geography テーブル
 Region_Name  Store_Name 
 East  Boston 
 East  New York 
 West  Los Angeles 
 West  San Diego 

次の SQL クエリは、

SELECT SUM(Sales) FROM Store_Information
WHERE EXISTS
(SELECT * FROM Geography
WHERE Region_Name = 'West');

以下の結果を生成します:

SUM(Sales)
2750

最初はこれが混乱して見えるかもしれません。サブクエリには [region_name = 'West'] の条件が含まれていますが、クエリはすべての地域の店舗の売上を合計しています。しかし、よく調べてみると、サブクエリがゼロよりも多くの行を返すため、EXISTS 条件は真であり、クエリ "SELECT SUM(Sales) FROM Store_Information" から返される行が最終結果となります。"

SQL UNION >>

このページの最終更新日は 2023年10月16日です



Copyright © 2024   1keydata.com   All Rights Reserved