算术运算符
+, -, *, /, %, &, |, ^, ~
| 操作符 | 返回类型 | 描述 |
| 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