try_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 opmaak fmtof NULL als expr deze niet overeenkomt met de notatie.

Syntaxis

try_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 is als er geen cijfers achter het decimaalteken staan.

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 het maximum aantal cijfers expr aan aan de rechterkant van het decimaalteken dat is opgegeven door fmt.

  • . 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

    expr Hiermee geeft u een negatief getal aan met haakjes in de terugloop (<1>).

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

Voor strikt semantisch gebruik 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 try_to_number('-$12,345.67', 'S$999,099.99');
 -12345.67

-- Plus is optional, and so are fractional digits.
> SELECT try_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 number

-- 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 try_to_number('$045', 'S$999,099.99');
 45.00

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