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 concatenation |
IN,LIKE,BETWEEN |
SQL SELECT |
=, >, <, <=, >=, <> |
Relational operators |
AND,OR |
Logical and and |
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
.