Operator
precedence in DataWindow expressions
To ensure predictable results, operators in DataWindow expressions
are evaluated in a specific order of precedence. When operators have the
same precedence, they are evaluated from left to right.
The following table lists the operators in descending order of
precedence:
|
Operator |
Purpose |
|---|---|
|
( ) |
Grouping |
|
^ |
Exponentiation |
|
*, / |
Multiplication and division |
|
+, – |
Addition and subtraction; string |
|
IN,LIKE,BETWEEN |
SQL SELECT statement conditions |
|
=, >, <, <=, >=, <> |
Relational operators |
|
AND,OR |
Logical and and logical or |
|
NOT |
Logical negation |
Overriding the precedence
order
Since expressions in parentheses are evaluated first, to override
the precedence order, enclose expressions in parentheses. You can also use
parentheses to clarify the order of evaluation. Within each set of
parentheses, precedence order applies.
In the expression x+y*a+b, y is first multiplied by a (because
multiplication has a higher precedence than addition). The result of the
multiplication is then added to x and this result is then added to
b (because the + operators are evaluated left to right).
To force evaluation in a different order, group expressions with
parentheses. For example, in the expression x+(y*(a+b)), a+b is evaluated
first. The sum a+b is then multiplied by y, and this product is added to
x.