- Categorias:
Funções de dados semiestruturados e estruturados (Conversão)
AS_DECIMAL , AS_NUMBER¶
Converte um valor de VARIANT em um valor de ponto fixo de NUMBER, com precisão e escala opcionais. Essa função não converte valores de ponto flutuante.
AS_DECIMAL é um sinônimo de AS_NUMBER.
O tipo de dados DECIMAL é sinônimo do tipo de dados NUMBER.
- Consulte também:
Sintaxe¶
AS_DECIMAL( <variant_expr> [ , <precision> [ , <scale> ] ] )
AS_NUMBER( <variant_expr> [ , <precision> [ , <scale> ] ] )
Argumentos¶
variant_expr
Uma expressão que avalia como um valor do tipo VARIANT.
precision
O número de dígitos significativos do número decimal a armazenar.
O padrão é
38
.scale
O número de dígitos significativos após o ponto decimal.
O padrão é
0
.
Retornos¶
A função retorna um valor do tipo NUMBER ou NULL:
Se o tipo do valor no argumento
variant_expr
for DECIMAL ou NUMBER, a função retornará um valor do tipo NUMBER.
Se o tipo do valor no argumento
variant_expr
não corresponder ao tipo do valor de saída, a função retornará NULL.Se o argumento
variant_expr
for NULL, a função retornará NULL.
Notas de uso¶
Ao reduzir a escala, essa função arredonda o resultado, o que pode causar erros fora do intervalo.
Exemplos¶
Criar uma tabela e carregar dados nela:
CREATE OR REPLACE TABLE as_number_example (number1 VARIANT);
INSERT INTO as_number_example (number1)
SELECT TO_VARIANT(TO_NUMBER(2.34, 6, 3));
Use a função AS_NUMBER em uma consulta para converter um valor VARIANT em um valor NUMBER:
SELECT AS_NUMBER(number1, 6, 3) number_value
FROM as_number_example;
+--------------+
| NUMBER_VALUE |
|--------------|
| 2.340 |
+--------------+