Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
OBJECTFunktion _ TRANSFORM
Transformiert ein SUPER Objekt.
Syntax
OBJECT_TRANSFORM( input [KEEP path1, ...] [SET path1, value1, ..., ... ] )
Argumente
- input
-
Ein Ausdruck, der in ein Typobjekt aufgelöst wirdSUPER.
- KEEP
-
Alle in dieser Klausel angegebenen Pfad-Werte werden beibehalten und auf das Ausgabeobjekt übertragen.
Diese Klausel ist optional.
- path1, path2, ...
-
Konstante Zeichenfolgenliterale im Format von Pfadkomponenten in doppelten Anführungszeichen, die durch Punkte getrennt sind. Beispielsweise ist
'"a"."b"."c"'
ein gültiger Pfad-Wert. Dies gilt für den Pfadparameter sowohl in den als auch in den KEEP SET Klauseln. - SET
-
Pfad- und Wert-Paare, um einen bestehenden Pfad zu ändern oder einen neuen Pfad hinzuzufügen und den Wert dieses Pfads im Ausgabeobjekt festzulegen.
Diese Klausel ist optional.
- value1, value2, ...
-
Ausdrücke, die in SUPER Typwerte aufgelöst werden. Beachten Sie, dass numerische, textuelle und boolesche Typen in aufgelöst werden können. SUPER
Rückgabetyp
SUPER
Nutzungshinweise
OBJECT_ TRANSFORM gibt ein SUPER Typobjekt zurück, das die Pfadwerte aus der Eingabe enthält, die in angegeben wurden, KEEP und die Pfad - und Wertepaare, die in angegeben wurden. SET
Wenn beide KEEP und leer SET sind, TRANSFORM gibt OBJECT _ eine Eingabe zurück.
Wenn es sich bei der Eingabe nicht um ein SUPER Typobjekt handelt, TRANSFORM gibt OBJECT _ eine Eingabe zurück, unabhängig von den SET Werten KEEP oder.
Beispiel
Im folgenden Beispiel wird ein Objekt in ein anderes SUPER SUPER Objekt umgewandelt.
CREATE TABLE employees ( col_person SUPER ); INSERT INTO employees VALUES ( json_parse(' { "name": { "first": "John", "last": "Doe" }, "age": 25, "ssn": "111-22-3333", "company": "Company Inc.", "country": "U.S." } ') ), ( json_parse(' { "name": { "first": "Jane", "last": "Appleseed" }, "age": 34, "ssn": "444-55-7777", "company": "Organization Org.", "country": "Ukraine" } ') ) ; SELECT OBJECT_TRANSFORM( col_person KEEP '"name"."first"', '"age"', '"company"', '"country"' SET '"name"."first"', UPPER(col_person.name.first::TEXT), '"age"', col_person.age + 5, '"company"', 'Amazon' ) AS col_person_transformed FROM employees; --This result is formatted for ease of reading.
col_person_transformed ------------------------------------------------------------- { "name": { "first": "JOHN" }, "age": 30, "company": "Amazon", "country": "U.S." } { "name": { "first": "JANE" }, "age": 39, "company": "Amazon", "country": "Ukraine" }