Fungsi UPPER_ATTRIBUTE_NAMES - Amazon Redshift

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

Fungsi UPPER_ATTRIBUTE_NAMES

Mengonversi semua nama atribut yang berlaku dalam nilai SUPER ke huruf besar, menggunakan rutin konversi kasus yang sama seperti. Fungsi UPPER UPPER_ATTRIBUTE_NAMES mendukung karakter multibyte UTF-8, hingga maksimal empat byte per karakter.

Untuk mengonversi nama atribut SUPER menjadi huruf kecil, gunakan. fungsi LOWER_ATTRIBUTE_NAMES

Sintaks

UPPER_ATTRIBUTE_NAMES(super_expression)

Argumen

super_ekspresi

Ekspresi SUPER.

Jenis pengembalian

SUPER

Contoh

Mengonversi nama atribut SUPER ke huruf besar

Contoh berikut menggunakan UPPER_ATTRIBUTE_NAMES untuk mengonversi nama atribut dari semua nilai SUPER dalam sebuah tabel.

-- Create a table and insert several SUPER values. CREATE TABLE t (i INT, s SUPER); INSERT INTO t VALUES (1, NULL), (2, 'a'::SUPER), (3, JSON_PARSE('{"AttributeName": "b"}')), (4, JSON_PARSE( '[{"Subobject": {"c": "c"}, "Subarray": [{"d": "d"}, "e"] }]')); -- Convert all attribute names to uppercase. UPDATE t SET s = UPPER_ATTRIBUTE_NAMES(s); SELECT i, s FROM t ORDER BY i; i | s ---+-------------------------------------------------- 1 | NULL 2 | "a" 3 | {"ATTRIBUTENAME":"B"} 4 | [{"SUBOBJECT":{"C":"c"},"SUBARRAY":[{"D":"d"}, "e"]}]

Amati bagaimana UPPER_ATTRIBUTE_NAMES berfungsi.

  • Nilai NULL dan nilai SUPER skalar seperti "a" tidak berubah.

  • Dalam objek SUPER, semua nama atribut diubah menjadi huruf besar, tetapi nilai atribut seperti "b" tetap tidak berubah.

  • UPPER_ATTRIBUTE_NAMES berlaku secara rekursif ke objek SUPER apa pun yang bersarang di dalam array SUPER atau di dalam objek lain.

Menggunakan UPPER_ATTRIBUTE_NAMES pada objek SUPER dengan nama atribut duplikat

Jika objek SUPER berisi atribut yang namanya hanya berbeda dalam kasus mereka, UPPER_ATTRIBUTE_NAMES akan memunculkan kesalahan. Pertimbangkan contoh berikut.

SELECT UPPER_ATTRIBUTE_NAMES(JSON_PARSE('{"A": "A", "a": "a"}')); error: Invalid input code: 8001 context: SUPER value has duplicate attributes after case conversion.