WHERE 句

WHERE 句では、クエリの結果が準拠すべき条件を指定します。条件の指定については、 以下 の構文を参照してください。

条件の記述の構文
<condition> ::=
    <condition> AND <condition>
  | <condition> OR <condition>
  | NOT <condition>
  | ( <condition> )
  | <value> <binary operator> <value> [ , <value> ]*
  | <value> <binary operator> ( <value> [ , <value> ]* )
  | <value> BETWEEN <value> AND <value>
  | <value> <unary operator>

条件は、論理演算子 ANDOR 、または NOT で区切った条件要素の集合です。その評価から boolean 型の結果が得られます。条件を記号 () でグループ化すると評価順序を変更できます。

条件は 3 つのエレメントで構成されます。これらのエレメントとは、条件の適用対象とする左辺の演算子、演算子、および使用する演算子に応じてゼロ個以上の右辺のオペランドです。Virtual DataPort でサポートされている比較演算子については、「 比較演算子 」を参照してください。この演算子として、等号演算子、不等号演算子、文字列競合などがあります。

条件オペランドには、属性名、定数、評価する式、または複合値 (以下 を参照) を指定できます。

複合値を使用した条件

ROW コンストラクターによって register 値が作成されます (複合型の詳細については、「 複合値の管理 」を参照してください)。以下に例を示します。

ROW (value1, ... ,valueN)

この例では、 N 個のフィールドを持つレジスター値が作成されます。各フィールドの値には、属性、リテラル、数値、論理値、評価する式、または新しい ROW エレメントを指定できます。

array 値を作成するには、 { および } と組み合わせた ROW 構造体を使用します。以下に例を示します。

{ ROW (value1, ... ,valueN), ROW (valueN+1, ... ,value2N) }

この例では、2 つの register 値を持つ配列値が作成されます。配列のすべてのレジスターは同じ型とする必要があります。

注釈

複合値を作成する構文の詳しい説明については、「 関数の記述ルール 」を参照してください。

複合値を使用した条件は、等号演算子 (=) および不等号演算子 (<>) とのみ使用できます。両方のオペランドの型どうしに整合性がないと比較はできません。