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 ke objek tipe SUPER.
- JAGA
-
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 input.
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" }