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