Kategorien:

Semistrukturierte Datenfunktionen (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> ] ] )

Argumente

Variant-Ausdruck

Ein Ausdruck, der einen Wert vom Typ VARIANT ergibt.

Genauigkeit

Die Anzahl der signifikanten Stellen der zu speichernden Dezimalzahl.

Skalierung

Die Anzahl der signifikanten Stellen nach dem Dezimaltrennzeichen.

Nutzungshinweise

  • Standardmäßig ist die hat Genauigkeit einen Wert von 38 und Skalierung 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'))
     ;

Führen Sie nun die Abfrage aus:

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

Ausgabe:

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