Precedência do operador
À medida que as expressões se tornam mais complexas, a ordem em que elas são avaliadas se tornam mais importantes. Esta tabela mostra a ordem em que os operadores são avaliados. Os operadores da primeira linha são avaliados primeiro e assim por diante. Os operadores da mesma linha são avaliados da esquerda para a direita na expressão.
Precedência |
Operador |
1 |
Unário |
2 |
^, ** |
3 |
*, / |
4 |
+, - |
5 |
=, <>, <, <=, >, >=, Like, Not Like, Is Null, Is Not Null, Between, In, Exists, Any, All |
6 |
Not |
7 |
AND |
8 |
OR |
WHERE salário > 40000 OR data_contratação > (DATE '2008-01-30') AND dept = 'D101'
Como AND é avaliado primeiro, essa consulta recupera os funcionários do departamento D101 admitidos após 30 de janeiro de 2008, assim como cada funcionário que ganha mais de US$ 40.000, independentemente do departamento ou da data de admissão.
Para forçar a avaliação da cláusula em uma ordem diferente, use parênteses para delimitar as condições que serão avaliadas primeiro.
WHERE (salário > 40000 OR data_contratação > DATE '2008-01-30') AND dept = 'D101'
Esse exemplo recupera os funcionários do departamento D101 que ganham mais de US$ 40.000 ou que foram admitidos após 30 de janeiro de 2008.