プライマリ・コンテンツに移動
Oracle® Big Data Discovery Cloud Service EQLリファレンス

E65371-04
目次へ
目次
索引へ移動
索引

前
次
機械翻訳について

オペレータの優先順位のルール

EQLでは、演算子に次の優先順位ルールが施行されます。

ルールは降順でリストされます:
  1. カッコ(および参照式とIN式でカッコ)。 代替優先順位を設定したり、優先順位を明確にするために、いつでもカッコを自由に追加できます。
  2. * /
  3. + -
  4. = <> < > <= >=
  5. IS (IS NULL, IS NOT NULL, IS EMPTY, IS NOT EMPTY)
  6. IN
  7. BETWEEN
  8. NOT
  9. AND
  10. OR

INを除き、バイナリ演算子はJOIN演算子のすべてであるため、左結合になります。 IN (メンバーシップ設定用)は連想ではありません(たとえば、x IN y IN zを記述すると構文エラーになります)。

セットのある比較

値をセット(複数割当データ)と比較する場合、適切なセット関数と式を使用する必要があります。

たとえば、Priceが単一割当てのdouble属性の場合、次の構文は適切です:
RETURN Results AS
SELECT Price AS prices
FROM ProductsState
WHERE Price > 20
ただし、スコアが複数割当の整数属性の場合、この構文は失敗します:
RETURN Results AS
SELECT Score AS ratings
FROM ProductsState
WHERE Score > 80
エラー・メッセージは次のとおりです:
In statement "Results": in WHERE clause: The comparison operators are not defined on arguments
of types mdex:long-set and mdex:long

エラー・メッセージは、スコアがセット(mdex:long-setデータ型)であるため、整数(80、mdex:longデータ型)と比較できないことを意味します。

したがって、次の例のように、問合せを再記述する必要があります:
RETURN Results AS
SELECT Score AS Ratings
FROM ProductsState
WHERE SOME x IN Score SATISFIES (x > 80)

この例では、既存の数量式を使用します。