conv:进制转换
速查结论
conv(num, from_base, to_base) 是 Spark SQL 中用于将数值从一种进制转换为另一种进制的函数。
语法
conv(num, from_base, to_base)
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| num | 数值/字符串 | 待转换的数值 |
| from_base | 整型 | 原进制(2-36) |
| to_base | 整型 | 目标进制(2-36) |
示例
> SELECT conv('100', 2, 10);
4
> SELECT conv(-10, 16, -10);
-16
常见报错与避坑指南
- from_base / to_base 超出范围:这两个参数的有效范围是 2 到 36,超出此范围会导致报错。务必验证参数值是否在合法区间内。
- 负数转换的特殊行为:当
to_base为负数时,num会被当作有符号数处理(如上例conv(-10, 16, -10)将 -10 视为十六进制有符号数并转换为十进制 -16)。若你不需要有符号转换,确保to_base为正数。 - 输入为 NULL:任意参数为 NULL 时,结果返回 NULL,注意检查数据质量。
Since: 1.5.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

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