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