Kategorien:

Semistrukturierte Datenfunktionen (Array/Objekt)

OBJECT_KEYS

Gibt ein Array zurück, das die Liste der Schlüssel auf oberster Ebene des Eingabeobjekts enthält.

Syntax

OBJECT_KEYS( <object> )
Copy

Argumente

object

Der Wert, für den Sie die Schlüssel benötigen. Folgende Eingabewerte sind möglich:

  • Ein OBJECT-Wert

  • Ein VARIANT-Wert, der einen Wert vom Typ OBJECT enthält

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist ARRAY.

Nutzungshinweise

  • Wenn das Objekt verschachtelte Objekte enthält (z. B. Objekte innerhalb von Objekten), werden nur die Schlüssel der obersten Ebene zurückgegeben.

Beispiele

Grundlegendes Beispiel:

Das nächste Beispiel zeigt OBJECT_KEYS, die sowohl ein OBJECT verwenden als auch ein VARIANT, der einen Wert vom Typ OBJECT enthält.

Erstellen Sie eine Tabelle, die Spalten vom Typ OBJECT und VARIANT enthält.

CREATE TABLE objects_1 (id INTEGER, object1 OBJECT, variant1 VARIANT);
Copy

INSERT-Werte:

INSERT INTO objects_1 (id, object1, variant1) 
  SELECT
    1,
    OBJECT_CONSTRUCT('a', 1, 'b', 2, 'c', 3),
    TO_VARIANT(OBJECT_CONSTRUCT('a', 1, 'b', 2, 'c', 3))
    ;
Copy

Rufen Sie die Schlüssel sowohl für OBJECT als auch VARIANT ab:

SELECT OBJECT_KEYS(object1), OBJECT_KEYS(variant1) 
    FROM objects_1
    ORDER BY id;
+----------------------+-----------------------+
| OBJECT_KEYS(OBJECT1) | OBJECT_KEYS(VARIANT1) |
|----------------------+-----------------------|
| [                    | [                     |
|   "a",               |   "a",                |
|   "b",               |   "b",                |
|   "c"                |   "c"                 |
| ]                    | ]                     |
+----------------------+-----------------------+
Copy

Beispiel für verschachtelte Objekte

In diesem Beispiel wird zeigt, dass bei einem Objekt, das verschachtelte Objekte enthält, nur die Schlüssel der obersten Ebene zurückgegeben werden.

SELECT OBJECT_KEYS (
           PARSE_JSON (
               '{
                    "level_1_A": {
                                 "level_2": "two"
                                 },
                    "level_1_B": "one"
                    }'
               )
           ) AS keys
    ORDER BY 1;
+----------------+
| KEYS           |
|----------------|
| [              |
|   "level_1_A", |
|   "level_1_B"  |
| ]              |
+----------------+
Copy