适用于: Databricks SQL
Databricks Runtime
返回 multiplier
乘以 multiplicand
。
multiplier * multiplicand
-
multiplier
:数字或INTERVAL
表达式。 -
multiplicand
:数值表达式或INTERVAL
表达式。
不能为这两个参数指定一个 INTERVAL
。
- 如果
multiplier
和multiplicand
同时是DECIMAL
,则结果为DECIMAL
。 - 如果
multiplier
或multiplicand
是INTERVAL
类型,则结果为同一类型。 - 如果
multiplier
和multiplicand
都是整数类型,则结果为两个类型中的较大者。 - 在所有其他情况下,结果是
DOUBLE
。
如果 multiplier
或 multiplicand
为 0,则运算符返回 0。
如果乘法的结果超出结果类型的边界,则会引发 ARITHMETIC_OVERFLOW 错误。
使用 try_multiply 在溢出时返回 NULL
。
警告
在 Databricks Runtime 中,如果 spark.sql.ansi.enabled 为 false
,并且结果超出整数类型的边界,则结果会“换行”;如果结果超出小数类型的边界,则结果为 NULL
。
> SELECT 3 * 2;
6
> SELECT 2L * 2L;
4L
> SELECT INTERVAL '3' YEAR * 3;
9-0
> SELECT 100Y * 100Y;
Error: ARITHMETIC_OVERFLOW