本文为您介绍在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
该文章对您有帮助吗?