- Kategorien:
Funktionen für semistrukturierte und strukturierte Daten (Umwandlung)
AS_<Objekttyp>¶
Diese Funktionsfamilie kann verwendet werden, um ein strenges Umwandeln von VARIANT-Werten in andere Datentypen durchzuführen:
- Siehe auch:
Allgemeine Nutzungshinweise¶
Wenn der Typ des Werts im VARIANT-Argument nicht mit dem Ausgabewert übereinstimmt, wird NULL zurückgegeben. Wenn beispielsweise an AS_DATE() ein VARIANT-Wert übergeben wird, der kein
DATE
enthält, wird NULL zurückgegeben.Wenn die Eingabe NULL ist, lautet die Ausgabe NULL.
Beispiele¶
Berechnen des Durchschnitts aller numerischen Werte aus einer Variantentypspalte in der Tabelle vartab
(erstellt in den Beispielen):
Erstellen Sie zuerst die Tabelle, und laden Sie die Daten in die Tabelle.
CREATE OR REPLACE TABLE vartab (n NUMBER(2), v VARIANT); INSERT INTO vartab SELECT column1 AS n, PARSE_JSON(column2) AS v FROM VALUES (1, 'null'), (2, null), (3, 'true'), (4, '-17'), (5, '123.12'), (6, '1.912e2'), (7, '"Om ara pa ca na dhih" '), (8, '[-1, 12, 289, 2188, false,]'), (9, '{ "x" : "abc", "y" : false, "z": 10} ') AS vals;Zeigen Sie danach die Datentypen der Werte an (einige davon sind numerisch und andere nicht):
select n, as_real(v), typeof(v) from vartab order by n; +---+------------+------------+ | N | AS_REAL(V) | TYPEOF(V) | |---+------------+------------| | 1 | NULL | NULL_VALUE | | 2 | NULL | NULL | | 3 | NULL | BOOLEAN | | 4 | -17 | INTEGER | | 5 | 123.12 | DECIMAL | | 6 | 191.2 | DOUBLE | | 7 | NULL | VARCHAR | | 8 | NULL | ARRAY | | 9 | NULL | OBJECT | +---+------------+------------+Berechnen Sie schließlich den Durchschnitt aller numerischen Werte
VARIANT
-Spalte:select avg(as_real(v)) from vartab; +-----------------+ | AVG(AS_REAL(V)) | |-----------------| | 99.106666667 | +-----------------+