ヘッダーをスキップ

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

前へ | 次へ |

## IN条件

IN条件は、指定した値のリストまたは表の副問合せと式を比較します。式がリストの値のいずれかまたは副問合せによって返された値と等しい場合、IN条件はTRUEと評価されます。式がリストの値のいずれにも等しくないか、または副問合せによって返された値と等しくない場合、NOT INはTRUEと評価されます。

SQL構文

Expression [NOT] IN (ValueList|Subquery)

パラメータ

Expression | 式の構文については、「式」を参照してください。IN条件には、数値式も数値以外の式も使用できますが、ValueListの値は式と互換性がある必要があります。
ValueList | 式の値と比較する値を指定します。ValueListの構文は、次のとおりです。 { Constant| { ? | :DynamicParameter} } [,...] Constant: 特定の値を指定します。詳細は、「定数」を参照してください。 ?,:DynamicParameter: 準備されたSQL文の動的パラメータのプレースホルダ。動的パラメータの値は、文の実行時に設定されます。 空のリスト。SQL生成ツールによって生成される場合がある。
Subquery | 副問合せの構文については、「副問合せ」を参照してください。

説明

- Expressionの値がXで、(a,b,..., z)がValueListの要素である場合は、次のような関係になります。

- X IN (a,b,...,z)は、
  X = a OR X = b OR...OR X = zと同じです。
- X NOT IN (a,b,...,z)は、
  NOT (X IN (a,b,...,z))と同じです。

- ValueListには、NULLを指定できません。
- 型が異なる場合でも互換性のあるデータ型の値をTimesTenがどのように比較するかについては、「TimesTenの数値型」を参照してください。
- 空のValueListを評価すると、式INの結果はFALSEで、式NOT INの結果はTRUEになります。

##### 例12.7

重量が12、16、17の部品の番号を検索します。

    SELECT Parts.PartNumber FROM Parts
    WHERE Parts.Weight IN (12, 16, 17);

##### 例12.8

シリアル番号が'1123-P-01'、
'1733-AD-01'、:SerialNumberまたは:SerialIndである部品の部品番号を検索します。:SerialNumberと:SerialIndは動的パラメータで、その値は実行時に指定されます。

    SELECT PartNumber FROM Purchasing.Parts
    WHERE SerialNumber
    IN ('1123-P-01', '1733-AD-01',:SerialNumber, :SerialInd);

##### 例12.9

次に、1件以上の未発送の発注がある顧客を検索する副問合せの例を示します。

SELECT customers.name FROM customers
WHERE customers.id IN
(SELECT orders.custid FROM orders

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

##### 例12.10

副問合せのあるNOT INの例です。

    SELECT * FROM customers
    WHERE cid NOT IN
    (SELECT cust_id FROM returns)
    AND cid > 5000;
    SELECT * FROM customers
    WHERE cid NOT IN
    (SELECT cust_id FROM returns)
    AND cid NOT IN
    (SELECT cust_id FROM complaints);
    SELECT COUNT(*) From customers
    WHERE cid NOT IN
    (SELECT cust_id FROM returns)
    AND cid NOT IN
    (SELECT cust_id FROM complaints);

##### 例12.11

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

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

##### 例12.12

INまたはNOT IN条件で空の選択リストを問い合せる例を示します。

    SELECT * FROM t1 WHERE x1 IN ();
    SELECT * FROM t1 WHERE NOT x1 IN ();

##### 例12.13

exclBookList以外の本または価格が$20より高いすべての本を選択する例を示します。

    SELECT * FROM books WHERE id NOT IN (SELECT id FROM exclBookList)
    OR books.price>20;