全部产品
Search
文档中心

Hologres:Fungsi KeyValue

更新时间:Jun 23, 2025

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
    4
  • Contoh 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