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