适用于:
Databricks SQL
Databricks Runtime
将 num 从 fromBase 转换为 toBase。
语法
conv(num, fromBase, toBase)
参数
-
num:STRING表达式,表示fromBase中的数字。 -
fromBase:INTEGER表达式,表示源基数。 -
toBase:INTEGER表达式,表示目标基数。
返回
一个 STRING。
该函数支持基数 2 到基数 36。
数字“A”(或“a”)表示十进制 10,“Z”(或“z”)表示十进制 35。
支持的值范围涵盖了 BIGINT 的范围。
如果 fromBase 小于 2,或 toBase 为 -1、0 或 1,则结果为 NULL。
如果 toBase 为负数,则 num 会被解释为有符号数字,否则将其视为无符号数字。
如果 num 超出范围,Databricks SQL 和 Databricks Runtime 13.3 LTS 及更高版本会引发 ARITHMETIC_OVERFLOW。
警告
在 Databricks Runtime 中,如果 spark.sql.ansi.enabled 为 false,则溢出不会导致错误,而是会将结果“换行”。
示例
> SELECT conv('100', 2, 10);
4
> SELECT conv('-10', 16, 10);
18446744073709551600
> SELECT conv('-10', 16, -10);
-16
> SELECT conv('-1', 10, 10);
18446744073709551615
> SELECT conv('FFFFFFFFFFFFFFFFF', 16, 10);
Error: ARITHMETIC_OVERFLOW
> SELECT conv('FFFFFFFFFFFFFFFF', 16, 10);
18446744073709551615
> SELECT conv('FFFFFFFFFFFFFFFF', 16, -10);
-1