Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Função
Aplica-se a:
SQL do Databricks
Databricks Runtime 11.3 LTS e versões posteriores
Retorna expr convertido para DECIMAL usando a formatação fmt.
Sintaxe
to_number(expr, fmt)
fmt
{ ' [ MI | S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argumentos
-
expr: uma expressão STRING representando um número.exprpode incluir espaços à esquerda ou à direita. -
fmt: um literal STRING, especificando o formato esperado deexpr.
Retornos
Um DECIMAL(p, s) em que p será o número total de dígitos (0 ou 9) e s será o número de dígitos após o ponto decimal, ou 0, se não houver nenhum.
fmt pode conter os seguintes elementos (diferencia maiúsculas de minúsculas):
0ou9Especifica um dígito esperado entre
0e9. O0à esquerda dos pontos decimais indica queexprprecisa ter pelo menos esse número de dígitos. O9à esquerda indica queexprpode omitir esses dígitos.exprnão pode ser maior que o número de dígitos permitido à esquerda do ponto decimal.Dígitos à direita do decimal indicam o número máximo de dígitos que
exprpode ter à direita do ponto decimal além do especificado porfmt..ouDEspecifica a posição do ponto decimal.
exprnão precisa incluir um ponto decimal.,ouGEspecifica a posição do separador de agrupamento
,(milhares). Precisa haver um0ou9à esquerda e à direita de cada separador de agrupamento.exprprecisa corresponder ao separador de agrupamento relevante ao tamanho do número.Lou$Especifica o local do sinal de moeda
$. Esse caractere só pode ser especificado uma vez.SouMIEspecifica a posição de um sinal opcional '+' ou '-' para
S, e '-' somente paraMI. Essa diretiva pode ser especificada apenas uma vez.PRPermitido somente no final da cadeia de caracteres de formato; especifica que
exprindica um número negativo com colchetes angulares de encapsulamento (<1>).
Se expr contiver caracteres diferentes de 0 a 9 ou caracteres permitidos em fmt, um erro será retornado.
Para retornar NULL em vez de um erro para expr inválido, use try_to_number().
Exemplos
-- 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