Kategorien:

Funktionen für semistrukturierte und strukturierte Daten (Umwandlung)

AS_DECIMAL , AS_NUMBER

Wandelt einen VARIANT-Wert in eine Festkommadezimalzahl (stimmt nicht mit Gleitkommawerten überein) um, mit optionaler Genauigkeit und Skalierung.

AS_NUMBER ist ein Synonym für AS_DECIMAL.

Siehe auch:

AS_<Objekttyp>, AS_DOUBLE , AS_REAL, AS_INTEGER

Syntax

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

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

Argumente

variant_expr

Ein Ausdruck, der einen Wert vom Typ VARIANT ergibt.

precision

Die Anzahl der signifikanten Stellen der zu speichernden Dezimalzahl.

scale

Die Anzahl der signifikanten Stellen nach dem Dezimaltrennzeichen.

Nutzungshinweise

  • Standardmäßig hat precision einen Wert von 38 und scale einen Wert von 0.

  • Bei Reduzierung der Skalierung sorgt die Funktion für Rundung, was zu Out-of-Range-Fehlern führen kann.

Beispiele

Hier sehen Sie, wie sich die Funktion verwenden lässt:

Erstellen Sie eine Tabelle und Daten:

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

Führen Sie nun die Abfrage aus:

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

Ausgabe:

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