Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
LOWER_ ATTRIBUTE _ NAMES fungsi
Mengonversi semua nama atribut yang berlaku dalam SUPER nilai menjadi huruf kecil, menggunakan rutin konversi kasus yang sama seperti. LOWER fungsi LOWER_ ATTRIBUTE _ NAMES mendukung UTF -8 karakter multibyte, hingga maksimal empat byte per karakter.
Untuk mengonversi nama SUPER atribut ke huruf besar, gunakan. UPPER_ ATTRIBUTE _ NAMES fungsi
Sintaks
LOWER_ATTRIBUTE_NAMES(super_expression)
Argumen
- super_ekspresi
-
Sebuah 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 sepertiJSON, data 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 kembali 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 SUPER nama atribut. 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 SUPER atribut ke huruf kecil
Contoh berikut menggunakan LOWER _ ATTRIBUTE _ NAMES untuk mengonversi nama atribut dari semua SUPER nilai dalam 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 fungsi.
NULLnilai dan nilai skalar SUPER seperti tidak
"A"
berubah.Dalam sebuah SUPER objek, semua nama atribut diubah menjadi huruf kecil, tetapi nilai atribut seperti
"B"
tetap tidak berubah.LOWER_ ATTRIBUTE _ NAMES berlaku secara rekursif ke SUPER objek apa pun yang bersarang di dalam SUPER array atau di dalam objek lain.
Menggunakan LOWER _ ATTRIBUTE _ NAMES pada SUPER objek dengan nama atribut duplikat
Jika sebuah SUPER objek berisi atribut yang namanya hanya berbeda dalam kasusnya, 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.