fungsi OBJECT_TRANSFORM - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

fungsi OBJECT_TRANSFORM

Mengubah objek SUPER.

Sintaks

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

Argumen

masukan

Ekspresi yang menyelesaikan objek tipe SUPER.

SIMPAN

Semua nilai jalur yang ditentukan dalam klausa ini disimpan dan dibawa ke objek output.

Klausul ini bersifat opsional.

jalur1, jalan2,...

Literal string konstan, dalam format komponen jalur kutip ganda yang dibatasi oleh periode. Misalnya, '"a"."b"."c"' adalah nilai jalur yang valid. Ini berlaku untuk parameter jalur di kedua klausa KEEP dan SET.

SET

jalur dan pasangan nilai untuk memodifikasi jalur keluar atau menambahkan jalur baru, dan mengatur nilai jalur itu di objek output.

Klausul ini bersifat opsional.

value1, value2,...

Ekspresi yang menyelesaikan nilai tipe SUPER. Perhatikan bahwa tipe numerik, teks, dan Boolean dapat diselesaikan ke SUPER.

Jenis pengembalian

SUPER

Catatan penggunaan

OBJECT_TRANSFORM mengembalikan objek tipe SUPER yang berisi nilai jalur dari masukan yang ditentukan dalam KEEP dan pasangan jalur dan nilai yang ditentukan dalam SET.

Jika KEEP dan SET kosong, OBJECT_TRANSFORM mengembalikan masukan.

Jika input bukan objek tipe SUPER, OBJECT_TRANSFORM mengembalikan masukan, terlepas dari nilai KEEP atau SET.

Contoh

Contoh berikut mengubah objek SUPER menjadi objek SUPER lain.

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