【SQL】 EXISTS演算子の使い方(結果が存在するか求める)
EXISTS演算子は、以下で使用できます。
ORACLE MS-SQL MS-Access
EXISTS演算子 : 書式
書式 WHERE EXISTS <副問合せ>
EXISTS演算子 : 解説
EXISTS演算子は、副問い合わせから返された結果セットが存在するかどうかを確認します。存在する場合には真を返します。
EXISTS演算子 : 使用例
以下の例では、「在庫リスト」表の他に、商品番号と商品名をデータとして持った「商品マスタ」表も使っています。
SQL文
SELECT * FROM 在庫リスト Z WHERE EXISTS
(SELECT * FROM 商品マスタ S WHERE S.商品名='見えない眼鏡'
AND S.商品番号 = Z.商品番号 );
実行結果
商品番号 | 名前 | カテゴリ | 単価 | 在庫 | 商品タイプ |
---|---|---|---|---|---|
4 | 見えない眼鏡 | 実用商品 | 20000 | 12 | 重点販売商品 |
表:在庫リスト
商品番号 | 名前 | カテゴリ | 単価 | 在庫 | 商品タイプ |
---|---|---|---|---|---|
1 | 時の卵 | 空想商品 | 12345 | 2 | |
2 | 解けない氷 | 実用商品 | 500 | 32 | 重点販売商品 |
3 | 地面に沈む羽 | 空想商品 | 1200 | 4 | |
4 | 見えない眼鏡 | 実用商品 | 20000 | 12 | 重点販売商品 |
5 | 柄のない包丁 | 危険商品 | 3200 | 3 |
表:商品マスタ
商品番号 | 商品名 |
---|---|
1 | 時の卵 |
2 | 解けない氷 |
3 | 地面に沈む羽 |
4 | 見えない眼鏡 |
5 | 柄のない包丁 |
また、EXISTSの否定形は、NOT EXISTS になります。この演算子は副問い合わせの結果がないと、真になります。