Funzione to_number

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 11.3 LTS e versioni successive

Restituisce expr il cast a DECIMAL usando la formattazione fmt.

Sintassi

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. expr può includere spazi iniziali o finali.
  • fmt: valore letterale STRING, specificando il formato previsto di expr.

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 è presente nessuna.

fmt può contenere gli elementi seguenti (senza distinzione tra maiuscole e minuscole):

  • 0 oppure 9

    Specifica una cifra prevista tra 0 e 9. Un 0 oggetto a sinistra dei punti decimali indica che expr deve avere almeno un numero di cifre. L'indicazione iniziale 9 indica che expr può omettere queste cifre.

    expr non deve essere maggiore che il numero di cifre a sinistra del separatore decimale consenta.

    Le cifre a destra del separatore decimale indicano che la maggior parte delle cifre expr può avere a destra del separatore decimale rispetto fmt a quello specificato.

  • . oppure D

    Specifica la posizione del separatore decimale.

    expr non deve includere un separatore decimale.

  • , oppure G

    Specifica la posizione del separatore di , raggruppamento (migliaia). Deve essere presente un 0 oggetto o 9 a sinistra e a destra di ogni separatore di raggruppamento. expr deve corrispondere al separatore di raggruppamento pertinente alla dimensione del numero.

  • L oppure $

    Specifica la posizione del segno di $ valuta. Questo carattere può essere specificato una sola volta.

  • S oppure MI

    Specifica la posizione di un segno facoltativo '+' o '-' per Se '-' solo per MI. Questa direttiva può essere specificata una sola volta.

  • PR

    Consentito solo alla fine della stringa di formato; specifica che expr indica un numero negativo con parentesi angolate a capo (<1>).

Se expr contiene caratteri diversi da 0 tramite 9o caratteri consentiti in fmt, viene restituito un errore.

Per restituire NULL invece di un errore per l'utilizzo non valido expr try_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 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 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 to_number('$045', 'S$999,099.99');
 45.00

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