演算子の優先順位 (Entity SQL)
Entity SQL クエリに複数の演算子がある場合は、演算子の優先順位によって、操作の実行順序が決まります。 実行される順序により、クエリ結果の値は大きく変わります。
演算子には、次の表に示す優先順位レベルが定義されています。 優先順位が高い演算子は、優先順位が低い演算子よりも前に評価されます。
レベル | 演算の種類 | 演算子 |
---|---|---|
1 | 1 次式 | . , [] () |
2 | 単項 | ! not |
3 | 乗法 | * / % |
4 | 加法 | + - |
5 | 順序 | < > <= >= |
6 | 等価比較 | = != <> |
7 | 条件 AND | and && |
8 | 条件 OR | or || |
式の中の 2 つの演算子が同じ優先順位レベルである場合は、クエリの中での位置に従って演算子は左から右へと評価されます。 たとえば、x+y-z
は (x+y)-z
と評価されます。
クエリの中で演算子の定義済みの優先順位をオーバーライドするには、かっこを使用します。 この場合、かっこ内のすべての演算が評価され、1 つの結果が作成されてから、かっこ外の演算子でこの結果が使用されます。 たとえば、x+y*z
の場合、y
と z
の積に x
が加算されますが、(x+y)*z
の場合は、x
と y
の和に z
が乗算されます。