Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Função
Aplica-se a:
Databricks SQL
Databricks Runtime 11.3 LTS e posteriores
Retorna expr convertido para DECIMAL usando 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 que representa um número.exprpode incluir espaços iniciais ou finais. -
fmt: Um literal STRING, especificando o formato esperado deexpr.
Devoluções
A DECIMAL(p, s) onde p é o número total de dígitos (0 ou 9) e s é o número de dígitos após a vírgula decimal, ou 0 se não existir.
fmt pode conter os seguintes elementos (não diferencia maiúsculas de minúsculas):
0ou9Especifica um dígito esperado entre
0e9. A0à esquerda das casas decimais indica queexprdeve ter pelo menos tantos dígitos. Os dígitos iniciais9indicam queexprpode omitir esses dígitos.exprnão deve ser maior do que o número de dígitos à esquerda da vírgula decimal permite.Os algarismos à direita da casa decimal indicam a quantidade máxima de algarismos que
exprpode ter à direita da vírgula decimal em comparação com o quefmtespecifica..ouDEspecifica a posição da vírgula decimal.
exprnão precisa incluir um ponto decimal.,ouGEspecifica a posição do
,separador de agrupamento (milhares). Deve haver um0ou9à esquerda e à direita de cada separador de agrupamento.exprdeve corresponder ao separador de agrupamento relevante para o tamanho do número.Lou$Especifica a localização do símbolo da moeda
$. Este carácter só pode ser especificado uma vez.SouMIEspecifica a posição de um sinal opcional '+' ou '-' para
S, e '-' apenas paraMI. Esta diretiva só pode ser especificada uma vez.PRPermitido apenas no final da cadeia de caracteres de formato; especifica que
exprindica um número negativo com parênteses angulares (<1>).
Se expr contiver caracteres fora do intervalo de 0 até 9, ou caracteres permitidos em fmt, um erro é retornado.
Para retornar NULL em vez de um erro para expr inválido, use a função 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