跳到主要内容

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真题

交流微信二维码

你可能还想看