Kategorien:

Semistrukturierte Datenfunktionen (Typprädikate)

TYPEOF

Berichtet den Typ eines Wertes, der in einer VARIANT-Spalte gespeichert ist. Der Typ wird als Zeichenfolge zurückgegeben.

Siehe auch:

IS_<Objekttyp>

Syntax

TYPEOF( <column> )

Argumente

Das Argument kann ein Spaltenname oder ein allgemeiner Ausdruck sein.

Rückgabewerte

Gibt den Datentyp des Eingabeausdrucks zurück, z. B. BOOLEAN, DECIMAL, ARRAY, OBJECT usw.

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 Funktion PARSE_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;
+---+------------------------+------------+
| 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              |            |
|   | }                      |            |
+---+------------------------+------------+