Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
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.exprkan voorloop- of volgspaties bevatten. -
fmt: Een letterlijke tekenreeks, die het verwachte formaat vanexprspecificeert.
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):
0of9Specificeert een verwacht cijfer tussen
0en9. Een0links van de decimalen geeft aan datexprop zijn minst evenveel cijfers moet hebben. Een leidende9geeft aan datexprdeze cijfers kan weglaten.exprmag niet groter zijn dan het aantal cijfers links van het decimaalteken is toegestaan.Cijfers rechts van het decimaalteken geven aan dat
exprmogelijk meer cijfers rechts van het decimaalteken kan hebben danfmtspecificeert..ofDHiermee geeft u de positie van het decimaalteken.
exprhoeft geen decimaalteken op te nemen.,ofGGeeft de positie van het
,groeperingsscheidingsteken (duizendtallen) aan. Er moet een0of9links en rechts van elk groeperingsscheidingsteken zijn.exprmoet overeenkomen met het groeperingsscheidingsteken dat relevant is voor de grootte van het getal.Lof$Hiermee geeft u de locatie van het
$valutateken. Dit teken mag slechts eenmaal worden opgegeven.SofMIHiermee geeft u de positie van een optioneel '+' of '-' teken voor
S, en '-' alleen voorMI. Deze richtlijn mag slechts één keer worden opgegeven.PRAlleen toegestaan aan het einde van de formaattekenreeks; geeft aan dat
expreen 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