ヘッダーをスキップ
Oracle TimesTen In-Memory Database SQLリファレンス・ガイド
リリース11.2.1
B56051-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

ANY/ IN条件(副問合せ)

ANY条件は、比較演算子を使用して2つの式を比較します。 最初の式が、副問合せによって返されるすべてのと、比較演算子で指定したとおりの関係である場合、条件はTRUEと評価されます。同様に、IN条件は、表の副問合せと式(または式のリスト)を比較します。式(または式のリスト)が副問合せによって返された値と等しい場合、IN条件はTRUEと評価されます。

SQL構文

RowValueConstructor {CompOp ANY| IN} (Subquery)

RowValueConstructorの構文は、次のとおりです。

RowValueConstructorElement | (RowValueConstuctorList) | Subquery

RowValueConstructorListの構文は、次のとおりです。

RowValueConstructorElement[{, RowValueConstructorElement} ... ]

RowValueConstructorElementの構文は、次のとおりです。

Expression | NULL

CompOpの構文は、次のとおりです。

{= | <> | > | >= | < | <= }

パラメータ

構成要素 説明
Expression 式の構文の詳細は、「式の指定」を参照してください。ANY条件には、数値式も数値以外の式も使用できますが、両方の式の型には互換性がある必要があります。
=
等しい
<> 異なる
> 大きい
>= 以上
<
小さい
<=
以下
Subquery 副問合せの構文については、「副問合せ」を参照してください。

説明

ANY条件では、0(ゼロ)行以上の行を返し、キーワードANYを使用して変更される比較演算子を使用します。互換性のある異なるデータ型の値をTimesTenで比較する方法については、「数値データ型」を参照してください。

この例では、1件以上の未発送の発注がある顧客のリストを取得します。

SELECT customers.name FROM customers
WHERE customers.id = ANY
(SELECT orders.custid FROM orders
WHERE orders.status = 'unshipped');

これは、副問合せを含むIN条件の例です。 1件以上の未発送の発注がある顧客をSELECT文で選択します。

SELECT customers.name FROM customers
WHERE customers.id IN
(SELECT orders.custid FROM orders
WHERE orders.status = 'unshipped');

この例では、IN条件に副問合せを指定する集計問合せを使用して、exclBookListにある本の最高価格を検索します。

SELECT MAX(price) FROM books WHERE id IN (SELECT id FROM exclBookList);

IN条件および副問合せに式のリストを使用した例を示します。

SELECT * FROM t1 WHERE (x1,y1) IN (SELECT x2,y2 FROM t2);

ANY条件および副問合せに式のリストを使用した例を示します。

Command> SELECT * FROM t1 WHERE (x1,y1) < ANY (SELECT x2,y2 FROM t2);

次に、ANY条件に式のリストを使用した例を示します。

Command> columnlabels on;
Command> SELECT * FROM t1;
X1, Y1
< 1, 2 >
< 3, 4 >
2 rows found.
Command> SELECT * FROM t2;
X2, Y2
< 3, 4 >
< 1, 2 >
2 rows found.