Kategorien:

Funktionen für semistrukturierte und strukturierte Daten (Array/Objekt)

OBJECT_PICK

Gibt ein neues OBJECT zurück, das einige der Schlüssel-Wert-Paare eines vorhandenen Objekts enthält.

Um die Schlüssel-Wert-Paare zu identifizieren, die in das neue Objekt aufgenommen werden sollen, übergeben Sie die Schlüssel als Argumente oder als ein Array mit Schlüsseln.

Wenn ein bestimmter Schlüssel im Eingabeobjekt nicht vorhanden ist, wird der Schlüssel ignoriert.

Syntax

OBJECT_PICK( <object>, <key1> [, <key2>, ... ] )

OBJECT_PICK( <object>, <array> )
Copy

Argumente

object

Das Eingabeobjekt.

key1, key2

Ein oder mehrere Schlüssel, die die Schlüssel-Wert-Paare identifizieren, die im zurückgegebenen Objekt enthalten sein sollen.

array

Array von Schlüsseln, die die Schlüssel-Wert-Paare identifizieren, die im zurückgegebenen Objekt enthalten sein sollen.

Rückgabewerte

Gibt ein neues OBJECT zurück, das die angegebenen Schlüssel-Wert-Paare enthält.

Nutzungshinweise

Bei strukturierten OBJECTs:

  • Für die Argumente, die Schlüssel sind, müssen Sie Konstanten angeben.

  • Sie können kein ARRAY von Schlüsseln als zweites Argument übergeben. Sie müssen jeden Schlüssel als separates Argument angeben.

  • Die Funktion gibt ein strukturiertes OBJECT zurück. Der Typ von OBJECT enthält die Schlüssel in der Reihenfolge, in der sie angegeben sind.

    Angenommen, Sie wählen die Schlüssel state und city in dieser Reihenfolge aus:

    SELECT
      OBJECT_PICK(
        {'city':'San Mateo','state':'CA','zip_code':94402}::OBJECT(city VARCHAR,state VARCHAR,zip_code DOUBLE),
        'state',
        'city') AS new_object,
      SYSTEM$TYPEOF(new_object);
    
    Copy

    Die Funktion gibt ein OBJECT vom Typ OBJECT(state VARCHAR, city VARCHAR) zurück.

    +-----------------------+--------------------------------------------------------------+
    | NEW_OBJECT            | SYSTEM$TYPEOF(NEW_OBJECT)                                    |
    |-----------------------+--------------------------------------------------------------|
    | {                     | OBJECT(state VARCHAR(16777216), city VARCHAR(16777216))[LOB] |
    |   "state": "CA",      |                                                              |
    |   "city": "San Mateo" |                                                              |
    | }                     |                                                              |
    +-----------------------+--------------------------------------------------------------+
    

Beispiele

Im folgenden Beispiel wird OBJECT_PICK aufgerufen, um ein neues Objekt zu erstellen, das zwei der drei Schlüssel-Wert-Paare aus einem vorhandenen Objekt enthält:

SELECT OBJECT_PICK(
    OBJECT_CONSTRUCT(
        'a', 1,
        'b', 2,
        'c', 3
    ),
    'a', 'b'
) AS new_object;
+------------+
| NEW_OBJECT |
|------------|
| {          |
|   "a": 1,  |
|   "b": 2   |
| }          |
+------------+
Copy

Im obigen Beispiel werden die Schlüssel als Argumente an OBJECT_PICK übergeben. Sie können auch ein Array verwenden, um die Schlüssel anzugeben, wie unten gezeigt:

SELECT OBJECT_PICK(
    OBJECT_CONSTRUCT(
        'a', 1,
        'b', 2,
        'c', 3
    ),
    ARRAY_CONSTRUCT('a', 'b')
) AS new_object;
+------------+
| NEW_OBJECT |
|------------|
| {          |
|   "a": 1,  |
|   "b": 2   |
| }          |
+------------+
Copy