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.
OBJECT_TRANSFORM-Funktion
Transformiert ein SUPER-Objekt.
Syntax
OBJECT_TRANSFORM( input [KEEP path1, ...] [SET path1, value1, ..., ... ] )
Argumente
- input
-
Ein Ausdruck, der in ein Objekt vom Typ SUPER aufgelöst wird.
- 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 der KEEP- als auch in der SET-Klausel. - 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 Werte vom Typ SUPER aufgelöst werden. Beachten Sie, dass numerische, Text- und boolesche Typen in SUPER aufgelöst werden können.
Rückgabetyp
SUPER
Nutzungshinweise
OBJECT_TRANSFORM gibt ein Objekt vom Typ SUPER zurück, das die Pfadwerte aus der Eingabe enthält, die in KEEP angegeben wurden, und die Pfad-Wert-Paare, die in SET angegeben wurden.
Wenn sowohl KEEP als auch SET leer sind, gibt OBJECT_TRANSFORM Eingabe zurück.
Wenn es sich bei Eingabe nicht um ein Objekt vom Typ SUPER handelt, gibt OBJECT_TRANSFORM unabhängig von KEEP- oder SET-Werten Eingabe zurück.
Beispiel
Im folgenden Beispiel wird ein SUPER-Objekt in ein anderes 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" }