Delen via


to_number functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 11.3 LTS en hoger

Retourneert expr gecast naar DECIMAL met behulp van opmaak fmt.

Syntaxis

to_number(expr, fmt)

fmt
  { ' [ MI | S ] [ L | $ ]
      [ 0 | 9 | G | , ] [...]
      [ . | D ]
      [ 0 | 9 ] [...]
      [ L | $ ] [ PR | MI | S ] ' }

Argumenten

  • expr: een TEKENREEKS-expressie die een getal vertegenwoordigt. expr kan voorloop- of volgspaties bevatten.
  • fmt: Een letterlijke tekenreeks, die het verwachte formaat van expr specificeert.

Retouren

Een DECIMAL(p, s) waarbij p het totale aantal cijfers (0 of 9) is en s het aantal cijfers na het decimaalteken of 0 als er geen cijfers zijn.

fmt kan de volgende elementen bevatten (niet hoofdlettergevoelig):

  • 0 of 9

    Specificeert een verwacht cijfer tussen 0 en 9. Een 0 links van de decimalen geeft aan dat expr op zijn minst evenveel cijfers moet hebben. Een leidende 9 geeft aan dat expr deze cijfers kan weglaten.

    expr mag niet groter zijn dan het aantal cijfers links van het decimaalteken is toegestaan.

    Cijfers rechts van het decimaalteken geven aan dat expr mogelijk meer cijfers rechts van het decimaalteken kan hebben dan fmt specificeert.

  • . of D

    Hiermee geeft u de positie van het decimaalteken.

    expr hoeft geen decimaalteken op te nemen.

  • , of G

    Geeft de positie van het , groeperingsscheidingsteken (duizendtallen) aan. Er moet een 0 of 9 links en rechts van elk groeperingsscheidingsteken zijn. expr moet overeenkomen met het groeperingsscheidingsteken dat relevant is voor de grootte van het getal.

  • L of $

    Hiermee geeft u de locatie van het $ valutateken. Dit teken mag slechts eenmaal worden opgegeven.

  • S of MI

    Hiermee geeft u de positie van een optioneel '+' of '-' teken voor S, en '-' alleen voor MI. Deze richtlijn mag slechts één keer worden opgegeven.

  • PR

    Alleen toegestaan aan het einde van de formaattekenreeks; geeft aan dat expr een negatief getal aangeeft met omringende hoekige haken (<1>).

Als expr andere tekens bevat dan 0 tot en met 9, of tekens die zijn toegestaan in fmt, wordt een fout geretourneerd.

Om NULL terug te geven in plaats van een fout voor een ongeldig expr, gebruikt u try_to_number().

Voorbeelden

-- The format expects:
--  * an optional sign at the beginning,
--  * followed by a dollar sign,
--  * followed by a number between 3 and 6 digits long,
--  * thousands separators,
--  * up to two dight beyond the decimal point.
> SELECT to_number('-$12,345.67', 'S$999,099.99');
 -12345.67

-- Plus is optional, and so are fractional digits.
> SELECT to_number('$345', 'S$999,099.99');
 345.00

-- The format requires at least three digits.
> SELECT to_number('$45', 'S$999,099.99');
 Error: INVALID_FORMAT.MISMATCH_INPUT

-- The format requires at least three digits.
> SELECT try_to_number('$45', 'S$999,099.99');
 NULL

-- The format requires at least three digits
> SELECT to_number('$045', 'S$999,099.99');
 45.00

-- Using brackets to denote negative values
> SELECT to_number('<1234>', '999999PR');
 -1234