Dela via


Funktionen conv

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

Konverterar num från fromBase till toBase.

Syntax

conv(num, fromBase, toBase)

Argument

  • num: Ett STRING uttryck som uttrycker ett tal i fromBase.
  • fromBase: Ett INTEGER uttryck som anger källbasen.
  • toBase: Ett INTEGER uttryck som anger målbasen.

Returer

En STRING.

Funktionen stöder bas 2 till bas 36. Siffran "A" (eller "a") representerar decimal 10 och "Z" (eller "z") representerar decimal 35. Intervallet för values som stöds omfattar ett BIGINT.

Om fromBase är mindre än 2, eller toBase är -1, 0 eller 1, blir NULLresultatet .

Om toBase är negativt num tolkas som ett signerat tal, annars behandlas det som ett osignerat tal.

Om num är utom räckhåll genererar Databricks SQL och Databricks Runtime 13.3 LTS och senare en ARITHMETIC_OVERFLOW.

Varning

I Databricks Runtime om spark.sql.ansi.enabled är falseorsakar ett spill inte ett fel utan "omsluter" resultatet i stället.

Exempel

> 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