Fonction OBJECT_TRANSFORM - Amazon Redshift

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.

Fonction OBJECT_TRANSFORM

Transforme un objet SUPER.

Syntaxe

OBJECT_TRANSFORM( input [KEEP path1, ...] [SET path1, value1, ..., ... ] )

Arguments

input

Expression qui se résout en un objet de type SUPER.

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. Ceci s’applique au paramètre path dans les clauses KEEP et SET.

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 qui se résolvent en valeurs de type SUPER. Notez que les types numeric, text et boolean peuvent être résolus en SUPER.

Type de retour

SUPER

Notes d’utilisation

OBJECT_TRANSFORM renvoie un objet de type SUPER contenant les valeurs de chemin provenant de input spécifiées dans KEEP et les paires path value spécifiées dans SET.

Si KEEP et SET sont vides, OBJECT_TRANSFORM renvoie input.

Si input n’est pas un objet (object) de type SUPER, OBJECT_TRANSFORM renvoie input, quelles que soient les valeurs KEEP ou SET.

Exemple

L’exemple suivant transforme un objet SUPER en un autre objet SUPER.

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" }