跳到主要内容

cast:类型转换

速查结论

cast(expr AS type) 是 Spark SQL 中用于将表达式结果强制转换为指定数据类型的函数。

语法

cast(expr AS type)

参数说明

参数说明
expr需要转换的表达式或值
type目标数据类型,如 INT、STRING、BIGINT、DECIMAL 等

示例

> SELECT cast('10' as int);
10

常见报错与避坑指南

  • 无法转换时返回 NULL:在 ANSI 模式下,如果 cast 无法完成转换(如 cast('abc' AS int)),会抛出异常;在非 ANSI 模式下返回 NULL。建议使用 try_cast() 替代以安全处理转换失败的情况。
  • 精度丢失:将高精度类型转换为低精度类型时(如 DECIMAL 转 INT),小数部分会被截断而非四舍五入。如需四舍五入,请先使用 round() 函数。
  • 类型关键字大小写:AS 后面的类型名不区分大小写,cast(x as int)cast(x AS INT) 等价。

Since: 1.0.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

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

交流微信二维码

你可能还想看