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 superior
Retorna expr convertido para DECIMAL usando a formatação fmt, ou NULL se expr não corresponder ao formato.
Sintaxe
try_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: Uma cadeia de caracteres, 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 houver dígitos após a vírgula decimal.
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 à esquerda9indicam queexprpodem 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 vírgula decimal indicam o número máximo de algarismos
exprque podem ter à direita da vírgula decimal especificada porfmt..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 de 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.PREspecifica que
exprindica um número negativo com parênteses angulares (<1>).
Se expr contiver quaisquer caracteres diferentes de 0 até 9, ou aqueles permitidos em fmt, NULL é retornada.
Para uso estrito semântico 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 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