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

前へ
前へ
次へ
次へ
 

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
副問合せの構文については、「副問合せ」を参照してください。

説明

例4.5

1件以上の未発送の発注を含む顧客リストを検索します。

SELECT customers.name FROM customers

WHERE customers.id = ANY

(SELECT orders.custid FROM orders

WHERE orders.status = 'un-shipped');

例4.6

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

SELECT customers.name FROM customers

WHERE customers.id IN

(SELECT orders.custid FROM orders

WHERE orders.status = 'un-shipped');

例4.7

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

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

例4.8

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

SELECT * from t1 where (x1,y1) in (SELECT x2,y2 from t2);

例4.9

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

SELECT * from t1 where (x1,y1) < ANY (SELECT x2,y2 from t2);

例4.10

次に、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.

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

X1, Y1

< 1, 2 >

1 row found.