fungsi LOWER_ATTRIBUTE_NAMES - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai 1 November 2025. Jika Anda ingin menggunakan Python UDFs, buat UDFs sebelum tanggal tersebut. Python yang ada UDFs akan terus berfungsi seperti biasa. Untuk informasi lebih lanjut, lihat posting blog.

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

fungsi LOWER_ATTRIBUTE_NAMES

Mengonversi semua nama atribut yang berlaku dalam nilai SUPER ke huruf kecil, menggunakan rutinitas konversi kasus yang sama dengan. Fungsi LOWER LOWER_ATTRIBUTE_NAMES mendukung karakter multibyte UTF-8, hingga maksimal empat byte per karakter.

Untuk mengonversi nama atribut SUPER menjadi huruf besar, gunakan. Fungsi UPPER_ATTRIBUTE_NAMES

Sintaksis

LOWER_ATTRIBUTE_NAMES(super_expression)

Argumen

super_ekspresi

Ekspresi SUPER.

Jenis pengembalian

SUPER

Catatan penggunaan

Di Amazon Redshift, pengidentifikasi kolom secara tradisional tidak peka huruf besar/kecil dan diubah menjadi huruf kecil. Jika Anda menyerap data dari format data case-sensitive seperti JSON, data tersebut mungkin berisi nama atribut mixed-case.

Pertimbangkan contoh berikut.

CREATE TABLE t1 (s) AS SELECT JSON_PARSE('{"AttributeName": "Value"}'); SELECT s.AttributeName FROM t1; attributename ------------- NULL SELECT s."AttributeName" FROM t1; attributename ------------- NULL

Amazon Redshift mengembalikan NULL untuk kedua kueri. Untuk kueriAttributeName, gunakan LOWER_ATTRIBUTE_NAMES untuk mengonversi nama atribut data menjadi huruf kecil. Pertimbangkan contoh berikut.

CREATE TABLE t2 (s) AS SELECT LOWER_ATTRIBUTE_NAMES(s) FROM t1; SELECT s.attributename FROM t2; attributename ------------- "Value" SELECT s.AttributeName FROM t2; attributename ------------- "Value" SELECT s."attributename" FROM t2; attributename ------------- "Value" SELECT s."AttributeName" FROM t2; attributename ------------- "Value"

Opsi terkait untuk bekerja dengan nama atribut objek kasus campuran adalah opsi enable_case_sensitive_super_attribute konfigurasi, yang memungkinkan Amazon Redshift mengenali kasus dalam nama atribut SUPER. Ini bisa menjadi solusi alternatif untuk menggunakan LOWER_ATTRIBUTE_NAMES. Untuk informasi lebih lanjut tentangenable_case_sensitive_super_attribute, kunjungienable_case_sensitive_super_attribute.

Contoh

Mengonversi nama atribut SUPER menjadi huruf kecil

Contoh berikut menggunakan LOWER_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 lowercase. UPDATE t SET s = LOWER_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 LOWER_ATTRIBUTE_NAMES berfungsi.

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

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

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

Menggunakan LOWER_ATTRIBUTE_NAMES pada objek SUPER dengan nama atribut duplikat

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

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