Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
Databricks SQL
Databricks Runtime 11.3 LTS e versioni successive
Restituisce expr il cast a DECIMAL usando la formattazione fmto NULL se expr non corrisponde al formato.
Sintassi
try_to_number(expr, fmt)
fmt
{ ' [ MI | S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argomenti
-
expr: espressione STRING che rappresenta un numero.exprpuò includere spazi iniziali o finali. -
fmt: valore letterale STRING, specificando il formato previsto diexpr.
Valori restituiti
Decimal(p, s) dove p è il numero totale di cifre (0 o 9) e s è il numero di cifre dopo il separatore decimale oppure 0 se non sono presenti cifre dopo il separatore decimale.
fmt può contenere gli elementi seguenti (senza distinzione tra maiuscole e minuscole):
0oppure9Specifica una cifra prevista tra
0e9. Un0oggetto a sinistra dei punti decimali indica cheexprdeve avere almeno un numero di cifre. L'indicazione iniziale9indica cheexprpuò omettere queste cifre.exprnon deve essere maggiore che il numero di cifre a sinistra del separatore decimale consenta.Le cifre a destra del decimale indicano che il numero massimo di cifre
exprpuò avere a destra del separatore decimale specificato dafmt..oppureDSpecifica la posizione del separatore decimale.
exprnon deve includere un separatore decimale.,oppureGSpecifica la posizione del separatore di
,raggruppamento (migliaia). Deve essere presente un0oggetto o9a sinistra e a destra di ogni separatore di raggruppamento.exprdeve corrispondere al separatore di raggruppamento pertinente alla dimensione del numero.Loppure$Specifica la posizione del segno di
$valuta. Questo carattere può essere specificato una sola volta.SoppureMISpecifica la posizione di un segno facoltativo '+' o '-' per
Se '-' solo perMI. Questa direttiva può essere specificata una sola volta.PRSpecifica che
exprindica un numero negativo con parentesi angolate a capo (<1>).
Se expr contiene caratteri diversi da 0 tramite 9o quelli consentiti in fmt, viene restituito un oggetto NULL .
Per l'uso semantico rigoroso to_number().
Esempi
-- 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