T-SQL - Operators Precedence
T-SQL Operators Precedence
Operator precedence (order of operations) is a collection of rules that reflect conventions about which procedures to perform first in order to evaluate a given expression.
For example, multiplication has higher precedence than addition. Thus, the expression 1 + 2 × 3 is interpreted to have the value 1 + (2 × 3) = 7, and not (1 + 2) × 3 = 9. When exponent is used in the expression, it has precedence over both addition and multiplication. Thus 3 + 52 = 28 and 3 × 52 = 75.
Example:
Consider the following expressions:
--evaluates 5 * 2 first Result1 = 15 - 5 * 2; --above expression is equivalent to Result2 = 15 - (5 * 2); --forcing compiler to evaluate 15 - 5 first Result3 = (15 - 5) * 2;
Now, Consider a database table called Sample with the following records:
Data | Var1 | Var2 |
---|---|---|
Data1 | 10 | 1 |
Data2 | 15 | 2 |
Data3 | 20 | 3 |
Data4 | 25 | 4 |
Data5 | 30 | 5 |
Data6 | 35 | 6 |
The above discussed can be applied on the table Sample. Consider the example below:
SELECT *, Var1 - Var2 * 2 AS Result1, Var1 - (Var2 * 2) AS Result2, (Var1 - Var2) * 2 AS Result3 FROM Sample;
The above query will produce following result:
Data | Var1 | Var2 | Result1 | Result2 | Result3 |
---|---|---|---|---|---|
Data1 | 10 | 1 | 8 | 8 | 18 |
Data2 | 15 | 2 | 11 | 11 | 26 |
Data3 | 20 | 3 | 14 | 14 | 34 |
Data4 | 25 | 4 | 17 | 17 | 42 |
Data5 | 30 | 5 | 20 | 20 | 50 |
Data6 | 35 | 6 | 23 | 23 | 58 |
T-SQL Operators Precedence Table
The following table lists the precedence of T-SQL operators. Operators are listed top to bottom, in descending precedence. Operators with higher precedence are evaluated before operators with relatively lower precedence.
Precedence | Operators |
---|---|
8 | ~ (Bitwise NOT) |
7 | * (Multiplication), / (Division), % (Modulus) |
6 | + (Positive), - (Negative), + (Addition), + (Concatenation), - (Subtraction), & (Bitwise AND), ^ (Bitwise Exclusive OR), | (Bitwise OR) |
5 | = (Comparison), >, <, >=, <=, <>, !=, !>, !< (Comparison operators) |
4 | NOT |
3 | AND |
2 | ALL, ANY, BETWEEN, IN, LIKE, OR, SOME |
1 | = (Assignment) |
❮ T-SQL - Operators