EXISTS条件
EXISTS条件は、表の副問合せの有無を確認します。EXISTSの場合は副問合せで1行以上を返す場合、NOT EXISTSの場合は行を返さない場合に、条件がTRUEと評価されます。
SQL構文
[NOT] EXISTS (Subquery)説明
-
副問合せと
EXISTSを組み合せて指定すると、行の存在についてテストできます。EXISTSは行の空のセットの有無をテストします。副問合せが1行以上の行を返す場合、副問合せはTRUEと評価されます。 -
副問合せと
NOT EXISTSを組み合せて指定すると、行の不在についてテストできます。NOT EXISTSは行の空のセットの有無をテストします。副問合せが行を返さない場合、副問合せはTRUEと評価されます。 -
結合順序が
NOT EXISTS副問合せの結合順序の要件と競合するttOptSetOrder組込みプロシージャを使用して発行される場合、指定された結合順序は無視され、警告が発行されて問合せが実行されます。 -
次の表に、TimesTenでの
EXISTSおよびNOT EXISTSの使用方法について、サポートの有無を示します。問合せ/副問合せの説明 Not Exists Exists 副問合せでの集計
サポート
サポート
メインの問合せでの集計
サポート
サポート
OR句での副問合せサポート
サポート
ttOptSetOrder組込みプロシージャを使用した結合順序制限付きサポート
サポート
例
1件以上の未発送の発注がある顧客を検索します。
SELECT customers.name FROM customers WHERE EXISTS (SELECT 1 FROM orders WHERE customers.id = orders.custid AND orders.status = 'unshipped');
未発送の発注がない顧客を検索します。
SELECT customers.name FROM customers WHERE NOT EXISTS (SELECT 1 FROM orders WHERE customers.id = orders.custid AND orders.status = 'unshipped');