Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
OBJECT_ TRANSFORM fonction
Transforme un SUPER objet.
Syntaxe
OBJECT_TRANSFORM( input [KEEP path1, ...] [SET path1, value1, ..., ... ] )
Arguments
- input
-
Expression qui se résout en un objet SUPER de type.
- KEEP
-
Toutes les valeurs de chemin spécifiées dans cette clause sont conservées et transférées vers l’objet de sortie.
Cette clause est facultative.
- path1, path2, ...
-
Litéraux de chaîne constants, au format de composants de chemin entre guillemets doubles délimités par des points. Par exemple,
'"a"."b"."c"'
est une valeur de chemin valide. Cela s'applique au paramètre path dans les SET clauses KEEP et. - SET
-
paires path et value permettant de modifier un chemin existant ou d’ajouter un nouveau chemin, et définir la valeur de celui-ci dans l’objet de sortie.
Cette clause est facultative.
- value1, value2, ...
-
Expressions résolues en valeurs SUPER de type. Notez que les types numérique, texte et booléen peuvent être résolus en. SUPER
Type de retour
SUPER
Notes d’utilisation
OBJECT_ TRANSFORM renvoie un objet de SUPER type contenant les valeurs de chemin d'entrée spécifiées dans KEEP et les paires de chemin et de valeur spécifiées dansSET.
Si KEEP les deux SET sont vides, OBJECT _ TRANSFORM renvoie une entrée.
Si l'entrée n'est pas un objet de SUPER type, OBJECT _ TRANSFORM renvoie l'entrée, quelles que KEEP soient SET les valeurs.
Exemple
L'exemple suivant transforme un SUPER objet en un autre SUPER objet.
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" }