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 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.