本文為您介紹在Hologres中如何使用KeyValue函數。
使用限制
僅Hologres V2.1及以上版本支持使用KeyValue函數,如果您的實例是V2.1以下版本,請您使用自助升級或加入Hologres釘釘交流群反饋,詳情請參見如何獲取更多的在線支持?。
使用KeyValue函數時,SQL語句中必須包含
from <table>
字段。
函數介紹
KeyValue
函數用于將字符串str
按照分隔符split1
切分成key-value對,并按分隔符split2
將key-value對進行切分,結果返回key所對應的value值。
語法
keyvalue(text <str>,[text <split1>,text <split2>,] text <key>)
參數說明
參數
類型
描述
是否必選
str
TEXT
待拆分的字符串。
是
split1
TEXT
用于作為分隔符的字符串。
按照指定的分隔符split1拆分源字符串,如果沒有指定,則默認按照分號(;)拆分。
當某個被split1拆分后的字符串中有多個split2時,返回結果未定義。
否,如果填寫,必須填上split2。
split2
TEXT
用于作為分隔符的字符串。
按照指定的分隔符split2拆分split1分隔后的字符串,如果沒有指定,按照冒號(:)拆分。
否,如果填寫,必須填上split1。
key
TEXT
字符串按照split1和split2拆分后,返回匹配到的key值對應的value。
是
返回值說明
返回TEXT類型。返回規則如下:
split1或split2值為NULL時,返回NULL。
str或key值為NULL,或拆分后的key-value對中沒有匹配的key時,返回NULL。
如果有多個key-value對匹配,返回第一個匹配上的key對應的value。
使用示例
示例1:按照常量或某一列的值匹配。
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'); --按照常量匹配 select keyvalue(a, '1') from kvtest; --返回結果 keyvalue ---------- \N \N 2 4 --按照某一列的值匹配 select keyvalue(a, b) from kvtest; --返回結果 keyvalue ---------- \N \N 2 4
示例2:按照指定分隔符匹配。
begin; create table kvtest( a text, b text ); commit; insert into kvtest values('sp=11&&xd=1&&B2C=12&&tf=219', 'key'); --按照指定分隔符匹配 select keyvalue(a,'&&','=', 'sp') from kvtest ; --返回結果 keyvalue ---------- 11
文檔內容是否對您有幫助?