ホーム » SQL レファレンス » 論理演算子 »

EXISTS 演算子 - 結果が存在するか調べる -

SQL-92/99- Oracle DB2 SQL Server MySQL PostgreSQL Access

WHERE <式> [NOT] EXISTS (<副問い合せ>)


使用例1

マーク 注意 !!

・MySQL で EXISTS 演算子を使用する場合には、バージョン4.1以降が必要です。

 EXISTS 演算子は、指定した式に副問い合せの結果が存在するかを調べるときに使用します。 このとき、式の値に副問い合せの結果が存在するとき真になります。


SELECT *
 FROM T_0203_1
  WHERE I1_CODE EXISTS (
   SELECT I1_CODE
    FROM T_0203_2
     WHERE I1_NAME = '車体部品'
  )
  AND I_COST < 6000;


SERIALI1_CODEI2_CODEI_COST
203001101102500
203004201205500
203005201205600
203006202205600

使用例2

 EXISTS 演算子では、NOT 演算子を指定することで、指定した式に副問い合せの結果が存在しないかを調べることができます。 このとき、式の値に副問い合せの結果が存在しないとき真になります。


SELECT *
 FROM T_0203_1
  WHERE I1_CODE NOT EXISTS (
   SELECT I1_CODE
    FROM T_0203_2
     WHERE I1_NAME = '車体部品'
  )
  AND I_COST < 6000;


問い合せ結果はありません。

SELECT *
 FROM T_0203_1
  WHERE I1_CODE NOT EXISTS (
   SELECT I1_CODE
    FROM T_0203_2
     WHERE I1_NAME = '車両部品'
  )
  AND I_COST < 6000;


SERIALI1_CODEI2_CODEI_COST
203001101102500
203004201205500
203005201205600
203006202205600

△ このページのトップへ戻る


参考表

T_0203_1

SERIALI1_CODEI2_CODEI_COST
203001101102500
203002201206500
203003301309800
203004201205500
203005201205600
203006202205600

T_0203_2

I1_CODEI1_PRICEI1_NAME
101500汎用部品
2012300車体部品
2022400車体部品
3014500専用部品

△ このページのトップへ戻る