Precedenza operatori
Più le espressioni sono complesse, più l'ordine con cui le espressioni vengono valutate è importante. Questa tabella mostra l'ordine in cui sono valutati gli operatori. Gli operatori nella prima linea sono valutati per primi, e così via. Gli operatori sulla stessa riga vengono valutati da sinistra a destra nell'espressione.
Precedenza |
Operatore |
1 |
|
2 |
^, ** |
3 |
*, / |
4 |
+, - |
5 |
=, <>, <, <=, >, >=, Like, Not Like, Is Null, Is Not Null, Between, In, Exists, Any, All |
6 |
Not |
7 |
AND |
8 |
OR |
WHERE stipendio > 40000 OR data_assunzione > (DATE '2008-01-30') AND settore = 'D101'
Poiché AND viene valutato per primo, questa query recupera i dipendenti nel reparto D101 assunti dopo il mercoledì 30 gennaio 2008, e tutti i dipendenti con uno stipendio superiore a 40.000 Euro, indipendentemente dal settore e dalla data di assunzione.
Per forzare la clausola in modo che venga valutata in un ordine diverso, usare le parentesi e racchiudere le condizioni da valutare per prime.
WHERE (stipendio > 40000 OR data_assunzione > DATE '2008-01-30') AND settore = 'D101'
Questo esempio recupera i dipendenti nel settore D101 con uno stipendio superiore a 40.000 Euro o assunti dopo il 30 gennaio 2008.