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

expr Hiermee wordt cast naar DECIMAL geretourneerd met behulp van opmaakfmt.

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, waarbij de verwachte notatie van expr.

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

    Hiermee geeft u een verwacht cijfer tussen 0 en 9. Een 0 links van de decimalen geeft aan dat expr er ten minste zoveel cijfers moeten zijn. Voorloop 9 geeft aan dat expr deze cijfers kunnen worden weggelaten.

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

    Cijfers rechts van het decimaalteken geven aan dat de meeste cijfers expr mogelijk rechts van het decimaalteken moeten zijn dan fmt opgegeven.

  • . of D

    Hiermee geeft u de positie van het decimaalteken.

    expr hoeft geen decimaalteken op te nemen.

  • , of G

    Hiermee geeft u de positie van het , groeperingsscheidingsteken (duizendtallen). Er moet een 0 of 9 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 notatietekenreeks; geeft aan dat expr een negatief getal wordt aangegeven met schuine haken in de terugloop (<1>).

Als expr er andere tekens zijn dan 0 via 9, of tekens die zijn toegestaan in fmt, wordt een fout geretourneerd.

Als u wilt terugkeren NULL in plaats van een fout voor ongeldig expr gebruik 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