conv
関数
適用対象: Databricks SQL Databricks Runtime
num
を fromBase
から toBase
に変換します。
構文
conv(num, fromBase, toBase)
引数
num
:fromBase
内の数値を表現するSTRING
式。fromBase
: ソース ベースを示すINTEGER
式。toBase
: ターゲット ベースを示すINTEGER
式。
返品
STRING
です。
関数では base 2 から base 36 がサポートされています。
数字 'A' (または 'a') は 10 進数 10 を表し、'Z' (または 'z') は 10 進数 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