Ordre de priorité des opérateurs
Au fur et à mesure que les expressions se compliquent, l'ordre dans lequel elles sont évaluées devient important. Le tableau suivant montre dans quel ordre les opérateurs sont évalués. Les opérateurs de la première ligne sont évalués en premier et ainsi de suite. Les opérateurs qui figurent sur une même ligne sont évalués de gauche à droite dans l'expression.
Ordre de priorité |
Opérateur |
1 |
Unaire |
2 |
^, ** |
3 |
*, / |
4 |
+, - |
5 |
=, <>, <, <=, >, >=, Like, Not Like, Is Null, Is Not Null, Between, In, Exists, Any, All |
6 |
Not |
7 |
AND |
8 |
OR |
WHERE salaire > 4000 OR date_embauche > {2008-01-30} AND serv = 'D101'
Comme l'opérateur AND est évalué en premier, cette requête extrait les employés du service D101 embauchés après le 30.01.08, ainsi que les employés dont le salaire est supérieur à 40 000 euros quel que soit leur service ou leur date d'embauche.
Pour forcer la clause à être évaluée dans un ordre différent, utilisez des parenthèses pour spécifier les conditions à évaluer en premier.
WHERE (salaire > 40000 OR date_embauche > DATE '2008-01-30} AND serv = 'D101'
Cet exemple extrait les employés du service D101 dont le salaire est supérieur à 40 000 euros ou qui ont été embauchés après le mercredi 30 janvier 2008.