2.3 运算符及优先级

运算符用于执行程序代码运算,会针对一个以上操作数项目进行运算。例如,2+3的操作数是2和3,运算符是“+”。Tableau支持的基本运算符有算术运算符、逻辑运算符、比较运算符。

2.3.1 算术运算符

  • +(加法):此运算符应用于数字时表示相加;应用于字符串时表示串联;应用于日期时,可用于将天数与日期相加。例如,'abc'+'def'='abcdef';#April 15,2004#+15=#April 30,2004#。
  • –(减法):此运算符应用于数字时表示减法;应用于表达式时表示求反;应用于日期时,可用于从日期中减去天数,还可用于计算两个日期之间的天数差异。例如,7–3=4;-(7+3)=-10;#April 15,2004#-#April 8,2004#=7。
  • *(乘法):此运算符表示数字乘法。例如,5*4=20。
  • /(除法):此运算符表示数字除法。例如,20/4=5。
  • %(求余):此运算符算数字余数。例如,5%4=1。
  • ^(乘方):此符号等效于POWER函数,用于计算数字的指定次幂。例如,6^3=216。

2.3.2 逻辑运算符

  • AND:逻辑运算且,两侧必须使用表达式或布尔值。

例如,IIF(Profit=100 AND Sales=1000,"High","Low"),如果两个表达式都为TRUE,结果就为TRUE;如果任意一个表达式为UNKNOWN,结果就为UNKNOWN;其他情况结果都为FALSE。

  • OR:逻辑运算或,两侧必须使用表达式或布尔值。

例如,IIF(Profit=100 OR Sales=1000,"High","Low"),如果任意一个表达式为TRUE,结果就为TRUE;如果两个表达式都为FALSE,结果就为FALSE;如果两个表达式都为UNKNOWN,结果就为UNKNOWN。

  • NOT:逻辑运算符否,此运算符可用于对另一个布尔值或表达式求反。

例如,IIF(NOT(Sales=Profit),"Not Equal","Equal")。

2.3.3 比较运算符

Tableau有丰富的比较运算符,有==或=(等于)、>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、!=和<>(不等于),用于比较两个数字、日期或字符串,并返回布尔值(TRUE或FALSE)。

2.3.4 运算符优先级

所有运算符都按特定顺序计算,如2*1+2等于4而不等于6,因为*运算符始终在+运算符之前计算。表2-1显示了计算运算符的顺序,第一行具有最高优先级,同一行中的运算符具有相同优先级,如果两个运算符具有相同优先级,在公式中就从左向右进行计算。

表2-1 运算符优先级

可以根据需要使用括号,括号中的运算符在计算时优先于括号外的运算符,从内部的括号开始向外计算,如(1+(2*2+1)*(3*6/3))=31。