conv fungsi

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Mengonversi num dari fromBase ke toBase.

Sintaks

conv(num, fromBase, toBase)

Argumen

  • num: Ekspresi STRING yang mengekspresikan angka dalam fromBase.
  • fromBase: Ekspresi INTEGER yang menunjukkan basis sumber.
  • toBase: Ekspresi INTEGER yang menunjukkan basis target.

Pengembalian

STRING.

Fungsi ini mendukung basis 2 hingga basis 36. Digit 'A' (atau 'a') mewakili desimal 10 dan 'Z' (atau 'z') mewakili desimal 35. Rentang nilai yang didukung mencakup keseluruhan dari BIGINT.

Jika fromBase kurang dari 2, atau toBase -1, 0, atau 1, maka hasilnya adalah NULL.

Jika toBase negatif num ditafsirkan sebagai angka yang ditandatangani, jika tidak, maka diperlakukan sebagai angka yang tidak ditandatangani.

Jika num berada di luar rentang, Databricks SQL dan Databricks Runtime 13.3 LTS ke atas menghasilkan ARITHMETIC_OVERFLOW.

Peringatan

Dalam Databricks Runtime, jika spark.sql.ansi.enabled adalah false, pembeludakan tidak menyebabkan kesalahan tetapi malah "membungkus" hasilnya.

Kondisi kesalahan umum

Contoh

> 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