Operator precedence
As expressions become more complex, the order in which the expressions are evaluated becomes important. This table shows the order in which the operators are evaluated. The operators in the first line are evaluated first, and so on. Operators in the same line are evaluated left to right in the expression.
Precedence |
Operator |
1 |
Unary |
2 |
^, ** |
3 |
*, / |
4 |
+, - |
5 |
=, <>, <, <=, >, >=, Like, Not Like, Is Null, Is Not Null, Between, In, Exists, Any, All |
6 |
Not |
7 |
AND |
8 |
OR |
WHERE salary > 40000 OR hire_date > (DATE '2008-01-30') AND dept = 'D101'
Because AND is evaluated first, this query retrieves employees in department D101 hired after January 30, 2008, as well as every employee making more than $40,000, no matter what department or hire date.
To force the clause to be evaluated in a different order, use parentheses to enclose the conditions to be evaluated first.
WHERE (salary > 40000 OR hire_date > DATE '2008-01-30') AND dept = 'D101'
This example retrieves employees in department D101 that either make more than $40,000 or were hired after January 30, 2008.