Topik ini menjelaskan cara menggunakan fungsi KeyValue di Hologres.
Batasan
Hanya Hologres V2.1 dan versi lebih baru yang mendukung fungsi KeyValue. Jika versi instance Hologres Anda lebih lama dari V2.1, Anda dapat memperbarui instance Hologres secara manual di konsol Hologres atau bergabung dengan grup DingTalk Hologres untuk menghubungi dukungan teknis Hologres. Untuk informasi lebih lanjut tentang pembaruan manual di konsol Hologres, lihat bagian Pembaruan Manual (beta) dalam "Peningkatan Instance". Untuk informasi lebih lanjut tentang dukungan teknis, lihat Dapatkan Dukungan Online untuk Hologres.
Saat menggunakan fungsi KeyValue dalam pernyataan SQL, bidang
from <table>harus ditentukan dalam pernyataan tersebut.
Deskripsi
Fungsi KeyValue membagi string yang ditentukan oleh str menjadi pasangan kunci-nilai berdasarkan pemisah yang ditentukan oleh split1, membagi pasangan kunci-nilai berdasarkan pemisah yang ditentukan oleh split2, dan mengembalikan nilai yang sesuai dengan sebuah kunci.
Sintaksis
keyvalue(text <str>,[text <split1>,text <split2>,] text <key>)Parameter
Parameter
Tipe
Deskripsi
Diperlukan
str
TEXT
String yang ingin Anda bagi.
Ya
split1
TEXT
Pemisah berdasarkan mana Anda ingin membagi string menjadi pasangan kunci-nilai.
Jika parameter ini tidak ditentukan, string dibagi berdasarkan titik koma (;).
Jika pasangan kunci-nilai yang diperoleh setelah string dibagi berdasarkan split1 mengandung beberapa bidang split2, nilai pengembalian tidak terdefinisi.
Tidak (Jika parameter ini ditentukan, split2 harus ditentukan.)
split2
TEXT
Pemisah berdasarkan mana Anda ingin membagi pasangan kunci-nilai yang diperoleh setelah string dibagi berdasarkan split1.
Jika parameter ini tidak ditentukan, pasangan kunci-nilai dibagi berdasarkan tanda titik dua (:).
Tidak (Jika parameter ini ditentukan, split1 harus ditentukan.)
key
TEXT
Kunci yang nilainya dikembalikan setelah string dibagi berdasarkan split1 dan split2.
Ya
Nilai Pengembalian
Nilai bertipe TEXT dikembalikan. Nilai pengembalian bervariasi berdasarkan aturan berikut:
Jika nilai split1 atau split2 adalah null, null dikembalikan.
Jika nilai str atau key adalah null, atau tidak ada kunci yang cocok setelah pasangan kunci-nilai dibagi, null dikembalikan.
Jika beberapa kunci cocok, nilai kunci pertama yang cocok dikembalikan.
Contoh
Contoh 1: Mengembalikan nilai berdasarkan konstanta atau kolom.
begin; create table kvtest( a text, b text ); commit; insert into kvtest values('0:1','a'),('2:3','b'),('1:2', '1'),('1:4', '1'); -- Mengembalikan nilai berdasarkan konstanta. select keyvalue(a, '1') from kvtest; -- Hasil berikut dikembalikan: keyvalue ---------- \N \N 2 4 -- Mengembalikan nilai berdasarkan kolom. select keyvalue(a, b) from kvtest; -- Hasil berikut dikembalikan: keyvalue ---------- \N \N 2 4Contoh 2: Membagi string berdasarkan pemisah yang ditentukan.
begin; create table kvtest( a text, b text ); commit; insert into kvtest values('sp=11&&xd=1&&B2C=12&&tf=219', 'key'); -- Mengembalikan nilai berdasarkan pemisah yang ditentukan. select keyvalue(a,'&&','=', 'sp') from kvtest ; -- Hasil berikut dikembalikan: keyvalue ---------- 11