Categorias:

Funções de dados semiestruturados e estruturados (Conversão)

AS_DECIMAL , AS_NUMBER

Converte um valor de VARIANT em um ponto decimal fixo (não corresponde aos valores de ponto flutuante), com precisão e escala opcionais.

AS_NUMBER é um sinônimo de AS_DECIMAL.

Consulte também:

AS_<tipo_de_objeto> , AS_DOUBLE , AS_REAL , AS_INTEGER

Sintaxe

AS_DECIMAL( <variant_expr> [ , <precision> [ , <scale> ] ] )

AS_NUMBER( <variant_expr> [ , <precision> [ , <scale> ] ] )
Copy

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.

scale

O número de dígitos significativos após o ponto decimal.

Notas de uso

  • O padrão para precision é 38 e scale é 0.

  • Ao reduzir a escala, esta função é arredondada, o que pode causar erros fora da escala.

Exemplos

Isso mostra como usar a função:

Criar uma tabela e dados:

CREATE TABLE multiple_types (
    binary1 VARIANT,
    date1 VARIANT,
    decimal1 VARIANT,
    time1 VARIANT,
    timestamp1 VARIANT
    );
INSERT INTO multiple_types 
     (binary1, date1, decimal1, time1, timestamp1)
   SELECT 
     TO_VARIANT(TO_BINARY('F0A5')),
     TO_VARIANT(TO_DATE('2018-10-10')), 
     TO_VARIANT(TO_DECIMAL(1.23, 6, 3)),
     TO_VARIANT(TO_TIME('12:34:56')),
     TO_VARIANT(TO_TIMESTAMP_NTZ('2018-10-10 12:34:56'))
     ;
Copy

Agora executar a consulta:

SELECT AS_DECIMAL(decimal1, 6, 3) AS "Decimal" FROM multiple_types;
Copy

Saída:

+---------+
| Decimal |
|---------|
|   1.230 |
+---------+
Copy