OBJECT_ TRANSFORM fonction - 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.

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