跳到主要内容

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

交流微信二维码

你可能还想看