- Kategorien:
Funktionen für semistrukturierte und strukturierte Daten (Typprädikate)
TYPEOF¶
Berichtet den Typ eines Wertes, der in einer VARIANT-Spalte gespeichert ist. Der Typ wird als Zeichenfolge zurückgegeben.
- Siehe auch:
Syntax¶
TYPEOF( <expr> )
Argumente¶
expr
Das Argument kann ein Spaltenname oder ein allgemeiner Ausdruck sein.
Rückgabewerte¶
Gibt einen VARCHAR-Wert zurück, der den Datentyp des Eingabeausdrucks enthält, z. B. BOOLEAN
, DECIMAL
, ARRAY
, OBJECT
usw.
Nutzungshinweise¶
Die zurückgegebene Zeichenfolge kann
DECIMAL
sein, auch wenn die Eingabe eine exakte Ganzzahl ist. Dies ist auf Optimierungen zurückzuführen, die den physischen Speichertyp der Eingabe ändern.
Diese Funktion unterstützt keine strukturierten Typen als Eingabeargument.
Beispiele¶
Erstellen Sie eine Tabelle mit verschiedenen Datentypen, die in einer VARIANT-Spalte gespeichert sind, und bestimmen Sie dann mit TYPEOF
die Datentypen der einzelnen Daten.
Erstellen Sie eine Tabelle, und füllen Sie diese. Beachten Sie, dass die Anweisung
INSERT
die FunktionPARSE_JSON
verwendet.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;Fragen Sie die Daten ab:
select n, v, typeof(v) from vartab order by n; +---+------------------------+------------+ | N | V | TYPEOF(V) | |---+------------------------+------------| | 1 | null | NULL_VALUE | | 2 | NULL | NULL | | 3 | true | BOOLEAN | | 4 | -17 | INTEGER | | 5 | 123.12 | DECIMAL | | 6 | 1.912000000000000e+02 | DOUBLE | | 7 | "Om ara pa ca na dhih" | VARCHAR | | 8 | [ | ARRAY | | | -1, | | | | 12, | | | | 289, | | | | 2188, | | | | false, | | | | undefined | | | | ] | | | 9 | { | OBJECT | | | "x": "abc", | | | | "y": false, | | | | "z": 10 | | | | } | | +---+------------------------+------------+