Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Funktionen
Gäller för:
Databricks SQL
Databricks Runtime 11.3 LTS och senare
Returnerar expr gjuten till DECIMAL med hjälp av formatering fmt.
Syntax
to_number(expr, fmt)
fmt
{ ' [ MI | S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argument
-
expr: Ett STRING-uttryck som representerar ett tal.exprkan innehålla inledande eller avslutande blanksteg. -
fmt: En STRING-literal som anger det förväntade formatet förexpr.
Returer
En DECIMAL(p, s) där p är det totala antalet siffror (0 eller 9) och s är antalet siffror efter decimaltecknet eller 0 om det inte finns några siffror.
fmt kan innehålla följande element (skiftlägesokänsligt):
0eller9Anger en förväntad siffra mellan
0och9. A0till vänster om decimaltecknet anger attexprdet måste ha minst lika många siffror. Inledande9indikerar attexprdessa siffror kan utelämnas.exprfår inte vara större än antalet siffror till vänster om decimaltecknet tillåter.Siffror till höger om decimaltecknet anger att de flesta siffror
exprkan ha till höger om decimaltecknet änfmtvad som anges..ellerDAnger decimaltecknets position.
exprbehöver inte innehålla någon decimalpunkt.,ellerGAnger positionen för grupperingsavgränsaren
,(tusentals). Det måste finnas en0eller9till vänster och höger om varje grupperingsavgränsare.exprmåste matcha den grupperingsavgränsare som är relevant för talets storlek.Leller$Anger valutatecknets
$plats. Det här tecknet kan bara anges en gång.SellerMIAnger positionen för ett valfritt "+" eller "-" -tecken för
S, och "-" endast förMI. Detta direktiv får endast anges en gång.PRTillåts endast i slutet av formatsträngen. anger ett
exprnegativt tal med omslutande vinklade hakparenteser (<1>).
Om expr innehåller andra tecken än 0 via 9, eller tecken som tillåts i fmtreturneras ett fel.
NULL Returnera i stället för ett fel för ogiltig expr användning try_to_number().
Exempel
-- 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