次の方法で共有


conv 関数

適用対象: 「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

numfromBase から 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.enabledfalse の場合、オーバーフローがエラーの原因となることはありませんが、結果がオーバーフローによって "ラップ" されます。

> 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