演算子の優先順位のルール

EQLでは、次に示す優先順位ルールが演算子に対して強制的に適用されます。

ルールは、降順に示しています。
  1. カッコ(およびルックアップ式とIN式の角カッコ)。カッコはいつでも、別の優先順位を指定するために、または優先順位を明確にするために自由に追加できます。
  2. * /
  3. + -
  4. = <> < > <= >=
  5. IS (IS NULLIS NOT NULLIS EMPTYIS NOT EMPTY)
  6. BETWEEN
  7. NOT
  8. AND
  9. OR

すべてのバイナリ演算子は左結合です(JOINのすべての演算子と同様)。

セットに対する比較

セット(複数割当てのデータ)に対して値を比較する際には、適切なセット関数および式を使用する必要があります。

たとえば、Priceが単一割当てのdouble属性の場合、これは正しい構文です。
RETURN Results AS
SELECT Price AS prices
WHERE Price > 20
ただし、Scoreが複数割当ての整数属性の場合、この構文は誤りです。
RETURN Results AS
SELECT Score AS ratings
WHERE Score > 80
エラー・メッセージは次のとおりです。
In statement "results": In WHERE clause: Cannot compare mdex:long-set and mdex:long

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

この例のように、問合せを書き換える必要があります。
RETURN Results AS
SELECT Score AS Ratings
WHERE SOME x IN Score SATISFIES (x > 80)

この例では、存在数量詞式を使用しています。