ヘッダーをスキップ

Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド リリース6.0 B25770-01 |
| 目次 | 索引

前へ | 次へ |

## EXISTS条件

EXISTS条件は、表の副問合せの有無を確認します。EXISTSの場合は副問合せで1行以上を返す場合、NOT EXISTSの場合は行を返さない場合に、条件がTRUEと評価されます。

SQL構文

[NOT] EXISTS (Subquery)

パラメータ

EXISTS条件には、次のパラメータがあります。

Subquery | 副問合せの構文については、「副問合せ」を参照してください。

説明

- 副問合せとEXISTSを組み合せて指定すると、行の存在についてテストできます。EXISTSは行の空のセットの有無をテストします。副問合せが1行以上の行を返す場合、副問合せはTRUEと評価されます。
- 副問合せとNOT EXISTSを組み合せて指定すると、行の不在についてテストできます。NOT EXISTSは行の空のセットの有無をテストします。副問合せが行を返さない場合、副問合せはTRUEと評価されます。
- 結合順序がNOT EXISTS副問合せの結合順序の要件と競合するttOptSetOrder組込みプロシージャを使用して発行される場合、指定された結合順序は無視され、警告が発行されて問合せが実行されます。
- 次の表に、TimesTenでのEXISTSおよびNOT EXISTSの使用方法について、サポートの有無を示します。

  問合せ/副問合せの説明 | NOT EXIST | EXIST
  --- | --- | ---
  副問合せでの集計 | サポート | サポート
  メインの問合せでの集計 | サポート | サポート
  OR句での副問合せ | サポート | サポート
  ttOptSetOrder組込みプロシージャを使用した結合順序 | サポート（制限あり） | サポート

##### 例12.5

1件以上の未発送の発注がある顧客を検索します。

    SELECT customers.name FROM customers
    WHERE EXISTS (SELECT 1 FROM orders
    WHERE customers.id = orders.custid
    AND orders.status = 'un-shipped');

##### 例12.6

未発送の発注がない顧客を検索します。

    SELECT customers.name FROM customers
    WHERE  NOT EXISTS (SELECT 1 FROM orders
    WHERE customers.id = orders.custid
    AND orders.status = 'un-shipped');