操作符
衡石允许使用运算符创建表达式,用于比较值或者执行算术计算。有三种不同类型的计算运算符:算术、比较和逻辑。
算术操作符
算数操作符 | 含义 | 示例 |
---|---|---|
+(加号) | 加法 | 3 + 3 = 6 |
+?(非空加号) | 两边参数如果为空,当成0参与加法 | 3 +? null = 3 |
-(减号) | 减法或负号 | 3 - 1 - 1 = 1 |
-?(非空减号) | 两边参数如果为空,当成0参与减法 | 3 -? null -? 1 = 2 |
*(星号) | 乘法 | 3 * 3 = 9 |
/(正斜杠) | 除法 | 3 / 3 = 1 |
%(百分号) | 取余数 | 16 % 5 = 1 |
^(脱字号) | 求幂 | 16 ^ 4 = 65536 |
比较操作符
比较操作符 | 含义 | 示例 |
---|---|---|
= | 等于 | {Region} = 'cn' |
!= | 不等于 | {Region} != 'cn' |
> | 大于 | {销售日期} > '2009-01-01' |
< | 小于 | {销售日期} < '2009-01-01' |
>= | 大于或等于 | {金额} >= 20000 |
<= | 小于或等于 | {金额} <= 100 |
<> | 不等于 | {区域} <> 'cn' |
in | 在集合中 | {区域} in ('cn','us') |
notin | 不在集合中 | {区域} not in ('cn','us') |
逻辑操作符
逻辑操作符 | 含义 | 示例 |
---|---|---|
and | 在两个表达式之间创建一个 AND 条件,每个表达式都有一个布尔结果。 如果两个表达式都返回 TRUE,则表达式的组合也返回 TRUE;否则,组合返回 FALSE。 | ({Region} = 'cn') and ({status} = 1)) |
or | 在两个逻辑表达式之间创建条件 OR 。 如果任一表达式返回 TRUE,则结果为 TRUE;只有当两个表达式均为 FALSE时,结果才是 FALSE。 | (([Region] = "France") or {status} = 1 |
not | 对逻辑表达值取反 | not ({status} = 1) |
操作符优先级
如果在单个公式中合并了多个运算符,则根据下表对作进行排序。 如果运算符的优先级值相等,则它们从左到右排序。使用括号可以调整计算顺序,括号内的计算优先级最高。
例如,如果表达式同时包含乘法和除法运算符,则按表达式中从左到右的顺序计算它们。下表中的操作符优先级是从高到低的顺序排列。
操作符号 | 说明 |
---|---|
^ | 求幂 |
– | 符号(如 –1) |
* , /, % | 乘法, 除法, 取余数 |
+,+?,– ,-? | 加法,非空加法,减法,非空减法 |
=, !=, <, >, <=, >=, <> | 比较 |
in, notin | 集合中是否存在 |
not | 取非 |
and | 逻辑与 |
or | 逻辑或 |
示例: and 和 or 的组合表达式
5 > 6 or 5 < 3 and 5 = 5
计算步骤:
- 5 > 6,返回 false
- 5 < 3,返回 false; 5 = 5,返回 true; 逻辑与,返回 false
- 逻辑或,返回 false