Priorité des opérateurs (Entity SQL)
Quand une requête Entity SQL comporte plusieurs opérateurs, la priorité de ces derniers détermine l’ordre d’exécution des opérations. Cet ordre peut affecter considérablement le résultat de la requête.
L'ordre de priorité des opérateurs est indiqué dans le tableau suivant. Un opérateur avec un haut niveau de priorité est évalué avant un opérateur avec un faible niveau de priorité.
Level | Type d'opération | Opérateur |
---|---|---|
1 | Principal | . , [] () |
2 | Unaire | ! not |
3 | Multiplicatif | * / % |
4 | Additive | + - |
5 | Classement | < > <= >= |
6 | Égalité | = != <> |
7 | AND conditionnel | and && |
8 | OR conditionnel | or || |
Lorsque deux opérateurs dans une expression ont le même niveau de priorité, ils sont évalués de gauche à droite, en fonction de leur position dans la requête. Par exemple, x+y-z
est évalué comme étant (x+y)-z
.
Vous pouvez utiliser des parenthèses pour modifier la priorité habituelle des opérateurs dans une requête. Tout ce qui se trouve entre parenthèses est évalué en premier pour produire un seul résultat, qui est ensuite utilisé par un opérateur en dehors des parenthèses. Par exemple,x+y*z
multiplie y
par z
puis ajoute x
, mais (x+y)*z
ajoute x
à y
puis multiplie le résultat par z
.