文档

运算符

更新时间:

运算符用于执行程序代码运算。本文为您介绍Dataphin支持的MaxCompute的运算符,包括关系运算符、算术运算符、位运算符和逻辑运算符。

关系运算符

运算符

说明

A=B

  • A或B为NULL,返回NULL。

  • A等于B,返回TRUE,否则返回FALSE。

A<>B

  • A或B为NULL,返回NULL。

  • A不等于B,返回TRUE,否则返回FALSE。

A<B

  • A或B为NULL,返回NULL。

  • A小于B,返回TRUE,否则返回FALSE。

A<=B

  • A或B为NULL,返回NULL。

  • A小于等于B,返回TRUE,否则返回FALSE。

A>B

  • A或B为NULL,返回NULL。

  • A大于B,返回TRUE,否则返回FALSE。

A>=B

  • A或B为NULL,返回NULL。

  • A大于等于B,返回TRUE,否则返FALSE。

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。

  • 百分号(%)匹配任意多个字符。

  • 下划线(_)匹配单个字符。

  • 要匹配百分号(%)或下划线(_)要用转义符表示为‘%’‘_’

'aaa' like 'a__'= TRUE 
'aaa' like 'a%' = TRUE
'aaa' like 'aab'= FALSE 
'a%b' like 'a\\%b'= TRUE 
'axb' like 'a\\%b'= FALSE 

A RLIKE B

A是字符串,B是字符串常量或者正则表达式。如果匹配成功,返回TRUE,否则返回FALSE。如果B为空串会报错。如果A或B为NULL,返回NULL。

A IN B

  • B为一个集合,如果A在B中,返回TRUE,否则返回FALSE。

  • 如果A为NULL,返回NULL。

  • 如果B仅包含一个NULL元素,即A IN(NULL),则返回NULL。

  • B必须是常数集合且至少包含一个项,且所有项的数据类型需要一致。

    说明

    如果B集合中包含NULL元素同时也包含其它元素,则将NULL视为与B集合中其它元素的数据类型一致。

BETWEEN AND

表达式为A [NOT] BETWEEN B AND C

  • A、B或C为NULL,则为空。

  • A大于等于B且小于等于C,返回TRUE,否则返回FALSE。

IS [NOT] DISTINCT FROM

表达式为A IS [NOT] DISTINCT FROM B。详情请参见IS DISTINCT FROMIS 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类型。

位运算符

运算符

示例

说明

  • BITAND

  • &

  • BITAND(A,B)

  • A&B

返回A和B进行按位与运算的结果。例如1&2返回0,BITAND(1,3)返回1,NULL和任何值按位与运算都为NULL。A和B必须为BIGINT类型。

  • BITOR

  • |

  • BITOR(A,B)

  • A|B

返回A和B进行按位或运算的结果。例如1|2返回3,BITOR(1,3)返回3,NULL和任何值按位或运算都为NULL。A和B必须为BIGINT类型。

  • BITNOT

  • ~

  • BITNOT(A)

  • ~A

返回A按位非运算的结果。例如~1返回-2,BITNOT(7)返回-8,NULL值按位非运算都为NULL。A必须为BIGINT类型。

  • BITXOR

  • ^

  • BITXOR(A,B)

  • A^B

返回A和B进行按位异或运算的结果。例如1^2返回3,BITXOR(4,5)返回1,NULL和任何值按位异或运算都为NULL。A和B必须为BIGINT类型。

说明

位运算符不支持隐式转换,只允许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类型参与运算,不支持隐式类型转换。

  • 本页导读 (0)
文档反馈