Delen via


conv functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Converteert num van fromBase naar toBase.

Syntaxis

conv(num, fromBase, toBase)

Argumenten

  • num: Een STRING expressie waarin een getal wordt weergegeven in fromBase.
  • fromBase: Een INTEGER expressie die de bronbasis aangeeft.
  • toBase: Een INTEGER expressie die de doelbasis aangeeft.

Retouren

A STRING.

De functie ondersteunt basis 2 tot grondtal 36. Het cijfer 'A' (of 'a') vertegenwoordigt decimaal 10 en 'Z' (of 'z') vertegenwoordigt decimal 35. Het bereik van de ondersteunde waarden omvat dat van een BIGINT.

Als fromBase kleiner is dan 2, of toBase -1, 0, of 1 is, dan is NULL het resultaat.

Als toBase negatief is, wordt num geïnterpreteerd als een tekengetal; anders wordt het behandeld als een tekenloos getal.

Als num buiten het bereik valt, geeft Databricks SQL en Databricks Runtime 13.3 LTS en hoger een ARITHMETIC_OVERFLOW.

Waarschuwing

In Databricks Runtime als spark.sql.ansi.enabled is, veroorzaakt falseeen overloop geen fout, maar 'verpakt' het resultaat.

Voorbeelden

> 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