Ordine di precedenza degli operatori (Entity SQL)
Quando in una query Entity SQL vengono utilizzati più operatori, la sequenza di esecuzione delle operazioni è determinata dall'ordine di precedenza degli operatori. L'ordine di esecuzione può modificare in modo significativo il risultato della query.
Nella tabella seguente sono indicati i livelli di precedenza degli operatori. Un operatore con livello di precedenza più alto viene valutato prima di un operatore con livello di precedenza più basso.
Livello | Tipo di operazione | Operatore |
---|---|---|
1 |
Primario |
|
2 |
Unario |
|
3 |
Moltiplicazione |
|
4 |
Addizione |
|
5 |
Ordinamento |
|
6 |
Uguaglianza |
|
7 |
AND condizionale |
|
8 |
OR condizionale |
|
Se due operatori in un'espressione hanno lo stesso livello di precedenza, vengono valutati da sinistra verso destra in base alla posizione nella query. L'espressione x+y-z
viene ad esempio valutata come (x+y)-z
.
Per ignorare l'ordine di precedenza predefinito degli operatori in una query, è possibile utilizzare le parentesi. Tutti gli operatori racchiusi tra parentesi vengono valutati per primi in modo da ottenere un singolo risultato, che verrà quindi utilizzato dagli operatori all'esterno delle parentesi. Ad esempio,x+y*z
moltiplicay
perz
e quindi aggiunge x
, mentre (x+y)*z
aggiungex
ay
e quindi moltiplica il risultato per z
.