*
(星号)运算符
适用于: Databricks SQL Databricks Runtime
返回 multiplier
乘以 multiplicand
。
语法
multiplier * multiplicand
参数
multiplier
:数值或时间间隔表达式。multiplicand
:数值表达式或时间间隔表达式。
不能为这两个参数都指定 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