运算符用于执行程序代码运算。本文为您介绍Dataphin支持的MaxCompute的运算符,包括关系运算符、算术运算符、位运算符和逻辑运算符。
关系运算符
| 运算符 | 说明 | 
| A=B | 
 | 
| A<>B | 
 | 
| A<B | 
 | 
| A<=B | 
 | 
| A>B | 
 | 
| A>=B | 
 | 
| A IS NULL | A为NULL,返回TRUE,否则返回FALSE。 | 
| A IS NOT NULL | A不为NULL,返回TRUE,否则返回FALSE。 | 
| A LIKE B | 如果A或B为NULL,返回NULL。A为字符串,B为要匹配的模式,如果匹配,返回TRUE,否则返回FALSE。 
  | 
| A RLIKE B | A是字符串,B是字符串常量或者正则表达式。如果匹配成功,返回TRUE,否则返回FALSE。如果B为空字符串会报错。如果A或B为NULL,返回NULL。 | 
| A IN B | 
 | 
| BETWEEN AND | 表达式为 
 | 
| IS [NOT] DISTINCT FROM | 表达式为 | 
算术运算符
| 运算符 | 说明 | 
| A+B | A或B为NULL,返回NULL,否则返回A+B的结果。 | 
| A-B | A或B为NULL,返回NULL,否则返回A-B的结果。 | 
| A*B | A或B为NULL,返回NULL,否则返回A×B的结果。 | 
| A/B | A或B为NULL,返回NULL,否则返回A÷B的结果。 说明  如果A和B为BIGINT类型,则返回结果为DOUBLE类型。 | 
| A%B | A或B为NULL,则返回NULL,否则返回A÷B并取余数的结果。 | 
| +A | 仍然返回A。 | 
| -A | 如果A为NULL,返回NULL,否则返回-A。 | 
| A DIV B | A或B为NULL,返回NULL,否则返回A DIV B的结果。 | 
常见用法如下。
SELECT age+10, age-10, age%10, -age, age*age, age/10, age div 10 FROM user;- STRING、BIGINT、DOUBLE和TIMESTAMP_NTZ类型的参数支持参与算术运算,日期和布尔类型不允许参与运算。关于TIMESTAMP_NTZ数据类型详情,请参见MaxCompute TIMESTAMP_NTZ数据类型介绍。 
- STRING类型在参与运算前会隐式转换为DOUBLE类型。 
- BIGINT和DOUBLE类型共同参与计算时,系统会将BIGINT类型隐式转换为DOUBLE类型再进行计算,返回结果为DOUBLE类型。 
- A和B都是BIGINT类型,执行A/B运算,返回结果为DOUBLE类型。执行上述其他运算,返回BIGINT类型。 
位运算符
| 运算符 | 示例 | 说明 | 
| 
 | 
 | 返回A和B进行按位与运算的结果。例如 | 
| 
 | 
 | 返回A和B进行按位或运算的结果。例如 | 
| 
 | 
 | 返回A按位非运算的结果。例如 | 
| 
 | 
 | 返回A和B进行按位异或运算的结果。例如 | 
位运算符不支持隐式转换,只允许BIGINT类型参与运算。
逻辑运算符
| 运算符 | 说明 | 
| A and B | TRUE and TRUE=TRUE | 
| TRUE and FALSE=FALSE | |
| FALSE and TRUE=FALSE | |
| FALSE and FALSE=FALSE | |
| FALSE and NULL=FALSE | |
| NULL and FALSE=FALSE | |
| TRUE and NULL=NULL | |
| NULL and TRUE=NULL | |
| NULL and NULL=NULL | |
| A or B | TRUE or TRUE=TRUE | 
| TRUE or FALSE=TRUE | |
| FALSE or TRUE=TRUE | |
| FALSE or FALSE=FALSE | |
| FALSE or NULL=NULL | |
| NULL or FALSE=NULL | |
| TRUE or NULL=TRUE | |
| NULL or TRUE=TRUE | |
| NULL or NULL=NULL | |
| NOT A | A是NULL,返回NULL。 | 
| A是TRUE,返回FALSE。 | |
| A是FALSE,返回TRUE。 | 
逻辑运算符只允许BOOLEAN类型参与运算,不支持隐式类型转换。