Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
OBJECT_ funzione TRANSFORM
Trasforma un SUPER oggetto.
Sintassi
OBJECT_TRANSFORM( input [KEEP path1, ...] [SET path1, value1, ..., ... ] )
Argomenti
- input
-
Un'espressione che si risolve in un SUPER oggetto di tipo.
- KEEP
-
Tutti i valori path specificati in questa clausola vengono mantenuti e passati all'oggetto di output.
Questa clausola è facoltativa.
- path1, path2, ...
-
Valori letterali di stringa costanti, nel formato di componenti del percorso tra virgolette doppie delimitate da punti. Ad esempio,
'"a"."b"."c"'
è un valore di percorso valido. Questo vale per il parametro path in entrambe le clausole KEEP andSET. - SET
-
Coppie di path e value per modificare un percorso esistente o aggiungerne uno nuovo e impostare il valore del percorso nell'oggetto di output.
Questa clausola è facoltativa.
- value1, value2, ...
-
Espressioni che si risolvono in valori di SUPER tipo. Nota che i tipi numerici, testuali e booleani sono risolvibili in. SUPER
Tipo restituito
SUPER
Note per l'utilizzo
OBJECT_ TRANSFORM restituisce un oggetto SUPER di tipo contenente i valori del percorso dell'input specificati in KEEP e le coppie percorso e valore specificate in. SET
Se entrambi KEEP e 3 SET sono vuoti, OBJECT _ TRANSFORM restituisce l'input.
Se l'input non è un oggetto SUPER di tipo, OBJECT _ TRANSFORM restituisce l'input, indipendentemente da uno KEEP o più SET valori.
Esempio
L'esempio seguente trasforma un SUPER oggetto in un altro SUPER oggetto.
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" }