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:
Databricks SQL
Databricks Runtime 11.3 LTS e versões posteriores
Retornará expr convertido em DECIMAL usando a formatação fmt ou retornará 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 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 é o número total de dígitos (0 ou 9) e s é o número de dígitos após o ponto decimal ou 0 se não houver dígitos após o ponto decimal.
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.PREspecifica que
exprindica um número negativo com colchetes angulares de encapsulamento (<1>).
Se expr contiver caracteres diferentes de 0 a 9 ou daqueles permitidos em fmt, um NULL será retornado.
Para semântica estrita, use 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