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

前へ
前へ
次へ
次へ
 

ANY/ IN条件(値リスト)

ANYまたはIN限定条件は、指定された値のリストと式(または式のリスト)を比較します。ANY条件は、ValueListの1つ以上の値が、式(または式のリスト)と比較演算子に指定した関係にある場合にTRUEと評価されます。同様に、IN条件は、式(または式のリスト)が、指定されたリスト内の値のいずれかと一致する場合にTRUEと評価されます。

SQL構文

RowValueConstructor {CompOp {ANY| SOME} | IN} ValueList

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

          RowValueConstructorElement |

          (RowValueConstuctorList) |

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

          RowValueConstructorElement

          [{, RowValueConstructorElement} ... ]

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

          Expression | NULL

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

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

ValueListの要素が複数ある構文は、次のとおりです。

          ({Constant | ? | :DynamicParameter} [,...] )

カッコで囲まれていないValueListの要素が1つの構文は、次のとおりです。

          Constant | ? | :DynamicParameter

ValueListが空の構文は、次のとおりです。

          ( )

ValueListが式のリストである構文は、次のとおりです。

          (({Constant | ? | :DynamicParameter} [,...]))

パラメータ

構成要素
説明
Expression
取得する値を指定します。ValueListの値は、式と互換性がある必要があります。式の構文については、「式の指定」を参照してください。
=
等しい
<>
異なる
>
大きい
>=
以上
<
小さい
<=
以下
{ANY|
SOME}
ValueListの1つ以上の値が、式(または式のリスト)と比較演算子に指定した関係にある場合にTRUEとなります。SOMEはANYのシノニムです。
ValueList

式(または式のリスト)の値と比較する値のリストです。ValueListには、列参照または副問合せを含めることができません。ValueListは、左側のオペランドがリストの場合にネストできます。

ValueListの要素は次のとおりです。

  • Constant : 特定の値を指定します。詳細は、「定数」を参照してください。
  • ?,:DynamicParameter : 準備されたSQL文の動的パラメータのプレースホルダ。動的パラメータの値は、文の実行時に設定されます。
  • 空のリスト: SQL生成ツールによって生成される場合があります。

説明

例4.11

項目100、200または300の発注が含まれている項目番号をすべて選択します。

SELECT DISTINCT OrderItems.ItemNumber

FROM OrderItems

WHERE OrderItems.Quantity = ANY (100, 200, 300)

例4.12

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

SELECT Parts.PartNumber FROM Parts

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

例4.13

シリアル番号が'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);

例4.14

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

SELECT * FROM t1 WHERE x1 IN ();

例4.15

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

SELECT * FROM t1 WHERE (x1,y1) IN ((1,2), (3,4));

例4.16

次に、IN条件に式のリストを使用した例を示します。この問合せは、department_id = 240およびlocation_id = 1700である部門のdepartment_nameを返します。
注意: IN条件の右側の式は、二重カッコ(( ))で囲む必要があります。

Command> select department_name from departments where (department_id, location_id) in ((240,1700));

< Government Sales >

1 row found.