testbook

算术运算符

+, -, *, /, %, &, |, ^, ~
操作符返回类型描述
A + B A和B的公有类型 返回A和B的和
说明:
       A和B可以为除了Boolean以外,任何基本类型。如果A和B都是Interval,可隐式转化规则为:tinyint->Int->bigint ->Float->Double,也就是说Int和Float的相加结果为Float。另外String和任何Interval相加结果,如果String可以转化为Double类型,则结果是double类型,否则结果为NULL,比如1+'1|1'的结果为NULL,1+'1'的结果则是2.0。

举例:
select 1 + 0.1 from src limit 1;
Result: 1.1


操作符返回类型描述
A - B A和B的公有类型 返回A和B的差
说明:
       A和B可以为除了Boolean以外,任何基本类型。如果A和B都是Interval,可隐式转化规则为:tinyint->Int->bigint ->Float->Double,也就是说Int和Float的相减结果为Float。另外String和任何Interval相减结果,如果String可以转化为Double类型,则结果是double类型,否则结果为NULL,比如1-'1|1'的结果为NULL,1-'1'的结果则是0.0。

举例:
select 1 - 0.1 from src limit 1;
Result: 0.9


操作符返回类型描述
A * B A和B的公有类型 返回A和B的和
说明:
       A和B可以为除了Boolean以外,任何基本类型。如果A和B都是Interval,可隐式转化规则为:tinyint->Int->bigint ->Float->Double,也就是说Int和Float的相乘结果为Float。另外String和任何Interval相乘结,如果String可以转化为Double类型,则结果是double类型,否则结果为NULL,比如1 * '1|1'的结果为NULL,1 * '1'的结果则是1.0。需要说明的是,如果乘法造成溢出,将选择更高的类型。

举例:
select 1 * 0.1 from src limit 1;
Result: 0.1


操作符返回类型描述
A / B A和B的公有类型 返回A和B的和
说明:
       A和B可以为任何数字类型或者字符串类型。如果A和B都是数字类型,则返回double类型。另外字符类型和数字类型相除,字符类型如果可以转化为double类型则结果也是double类型,否则返回NULL。

举例:
select 1 / 1 from src limit 1;
Result: 1.0


操作符返回类型描述
A % B A和B的公有类型 返回A被B除的余数
说明:
       A和B可以为任何数字类型或者字符串类型。如果A和B都是数字类型,则返回二者的共同类型。如果是字符类型和数字类型,字符类型如果可以转化为double类型则结果也是double类型,否则返回NULL。

举例:
select '10' % 3 from type limit 1;
Result: 1.0


操作符返回类型描述
A & B A和B的公有类型 返回A和B的二进制值的按位与结果
说明:
       A和B可以为TinyInt,Int,BitInt类型。运算符查看两个参数的二进制表示法的值,并执行按位”与”操作。两个表达式的一位均为1时,则结果的该位为 1。否则,结果 的该位为 0。

举例:
select 1&2 from src limit 1;
Result: 0


操作符返回类型描述
A | B A和B的公有类型 返回A和B的二进制值的按位或结果
说明:
       A和B可以为TinyInt,Int,BitInt类型。运算符查看两个参数的二进制表示法的值,并执行按位”或”操作。只要任一表达式的一位为 1,则结果的该位为 1。否则,结果的该位为 0。

举例:
select 1|2 from src limit 1;
Result: 3


操作符返回类型描述
A ^ B A和B的公有类型 返回A和B的二进制值的按位或结果
说明:
       A和B可以为TinyInt,Int,BitInt类型。运算符查看两个参数的二进制表示法的值,并执行按位”异或”操作。当且仅当只有一个表达式的某位上为 1 时,结果的该位才为 1。否则结果的该位为 0。

举例:
select 1^1 from src limit 1;
Result: 0


操作符返回类型描述
~A 和A类型相同 返回把A的二进制表达式按位取反的值
说明:
       A可以为TinyInt,Int,BitInt类型。对表达式 A 执行按位”非”(取反)。

举例:
select ~1 from src limit 1;
Result: -2