Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Función
Se aplica a:
Databricks SQL
Databricks Runtime 11.3 LTS y versiones posteriores
Devuelve la conversión expr a DECIMAL con el formato fmt.
Sintaxis
to_number(expr, fmt)
fmt
{ ' [ MI | S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argumentos
-
expr: Expresión STRING que representa un número.exprpuede incluir espacios iniciales o finales. -
fmt: Literal de STRING que especifica el formato esperado deexpr.
Devoluciones
Decimal(p, s) donde p es el número total de dígitos (0 o 9) y s es el número de dígitos después del punto decimal, o 0 si no hay ninguno.
fmt puede contener los siguientes elementos (sin distinción entre mayúsculas y minúsculas):
0o9Especifica un dígito esperado entre
0y9. Un0a la izquierda de los puntos decimales indica queexprdebe tener al menos tantos dígitos. El9inicial indica queexprpuede omitir estos dígitos.exprno debe ser mayor que lo permitido por el número de dígitos a la izquierda del separador decimal.Los dígitos situados a la derecha del decimal indican el número máximo de dígitos que puede tener
expra la derecha del separador decimal especificado porfmt..oDEspecifica la posición del separador decimal.
exprno es necesario incluir un separador decimal.,oGEspecifica la posición del separador de agrupación (miles)
,. Tiene que haber un0o9a la izquierda y a la derecha de cada separador de agrupación.exprtiene que coincidir con el separador de agrupación pertinente para el tamaño del número.Lo$Especifica la ubicación del signo de moneda
$. Este carácter solo se puede especificar una vez.SoMIEspecifica la posición de un signo opcional "+" o "-" para
Sy "-" solo paraMI. Esta directiva solo se puede especificar una vez.PRSolo se permite al final de la cadena de formato; especifica que
exprindica un número negativo con corchetes angulares de ajuste (<1>).
Si expr contiene caracteres que no sean de 0 a 9, o caracteres permitidos en fmt, se devuelve un error.
Para devolver NULL en lugar de un error de expr no válido, use try_to_number().
Ejemplos
-- 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