try_multiply:安全乘法运算
速查结论
try_multiply(expr1, expr2) 是 Spark SQL 中用于返回两数之积,溢出时返回 NULL 而非报错的数学函数。
语法
try_multiply(expr1, expr2)
参数说明
| 参数 | 说明 |
|---|---|
expr1 | 左操作数,可接受的输入类型与 * 运算符相同 |
expr2 | 右操作数,可接受的输入类型与 * 运算符相同 |
功能说明
try_multiply(expr1, expr2) 返回 expr1 乘以 expr2 的结果,如果发生溢出则结果为 NULL。可接受的输入类型与 * 运算符相同,支持数值和间隔类型。
示例
> SELECT try_multiply(2, 3);
6
> SELECT try_multiply(-2147483648, 10);
NULL
> SELECT try_multiply(interval 2 year, 3);
6-0
常见报错与避坑指南
- 整数溢出返回 NULL:乘法计算很容易超出 INT 范围。例如
-2147483648 * 10远超 INT 最小值,try_multiply返回 NULL。 - 间隔类型乘法:
try_multiply支持间隔类型与数值相乘,返回按倍数放大的间隔值。 - 与 * 运算符的区别:仅在溢出行为上有差异。普通运算用
*即可;处理大数值乘法时优先使用try_multiply。
Since: 3.3.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

💬加群交流
备注「数据仓库技术」加入社群,每日一道大厂SQL真题
