Catégories :

Fonctions de données semi-structurées et structurées (Conversion)

AS_DECIMAL , AS_NUMBER

Convertit une valeur VARIANT en décimale fixe (ne correspond pas aux valeurs à virgule flottante), avec une précision et une échelle facultatives.

AS_NUMBER est un synonyme de AS_DECIMAL.

Voir aussi :

AS_<type_objet> , AS_DOUBLE , AS_REAL , AS_INTEGER

Syntaxe

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

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

Arguments

variant_expr

Une expression qui correspond à une valeur de type VARIANT.

precision

Nombre de chiffres significatifs du nombre décimal à stocker.

scale

Le nombre de chiffres significatifs après le point décimal.

Notes sur l’utilisation

  • Par défaut, precision est 38 et scale est 0.

  • Lors de la réduction de l’échelle, cette fonction effectue un arrondi, ce qui peut entraîner des erreurs « out-of-range » (débordements de plage).

Exemples

Ceci montre comment utiliser la fonction :

Créez une table et des données :

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

Maintenant, exécutez la requête :

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

Sortie :

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