Kategorien:

Funktionen für semistrukturierte und strukturierte Daten (Umwandlung)

AS_DECIMAL , AS_NUMBER

Wandelt einen VARIANT-Wert in einen Festkommawert NUMBER um, mit optionaler Gesamtstellenzahl (precision) und einer Dezimalstellenzahl (scale). Diese Funktion wandelt keine Gleitkommawerte um.

AS_DECIMAL ist ein Synonym für AS_NUMBER.

Der Datentyp DECIMAL ist gleichbedeutend mit dem Datentyp NUMBER.

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.

Der Standardwert ist 38.

scale

Die Anzahl der signifikanten Stellen nach dem Dezimaltrennzeichen.

Der Standardwert ist 0.

Rückgabewerte

Die Funktion gibt einen Wert vom Typ NUMBER oder NULL zurück.

  • Wenn der Typ des Werts im Argument variant_expr DECIMAL oder NUMBER ist, gibt die Funktion einen Wert vom Typ NUMBER zurück.

  • Wenn der Typ des Werts im Argument variant_expr nicht mit dem Typ des Ausgabewerts übereinstimmt, gibt die Funktion NULL zurück.

  • Wenn das Argument variant_expr NULL ist, gibt die Funktion NULL zurück.

Nutzungshinweise

Bei Reduzierung der Skalierung rundet die Funktion das Ergebnis, was zu Out-of-Range-Fehlern führen kann.

Beispiele

Erstellen Sie eine Tabelle, und laden Sie Daten hinein:

CREATE OR REPLACE TABLE as_number_example (number1 VARIANT);

INSERT INTO as_number_example (number1)
  SELECT TO_VARIANT(TO_NUMBER(2.34, 6, 3));
Copy

Verwenden Sie die Funktion AS_NUMBER in einer Abfrage, um einen VARIANT-Wert in einen NUMBER-Wert umzuwandeln:

SELECT AS_NUMBER(number1, 6, 3) number_value
  FROM as_number_example;
Copy
+--------------+
| NUMBER_VALUE |
|--------------|
|        2.340 |
+--------------+