本文为您介绍如何使用MULTI_KEYVALUE函数,将目标字符串中拆分为Key-Value(KV)对,匹配split1和split2的KV对,并返回key_name1和key_name2对应的Value值。
使用限制
仅实时计算引擎VVR 3.0.0及以上版本支持MULTI_KEYVALUE函数。
语法
MULTI_KEYVALUE(VARCHAR str, VARCHAR split1, VARCHAR split2, VARCHAR key_name1, VARCHAR key_name2, ...)
入参
参数 | 数据类型 | 说明 |
---|---|---|
str | VARCHAR | 目标字符串。 |
split1 | VARCHAR | KV对的分隔符。
当split1为NULL时,表示按照空格作为KV对的分割符。当split1的长度>1时,split1仅表示分隔符的集合,每个字符都表示一个有效的分隔符。 |
split2 | VARCHAR | KV的分隔符。
当split2为NULL时,表示按照空格作为KV的分割符。当split2的长度>1时,split2仅表示分隔符的集合,每个字符都表示一个有效的分隔符。 |
key_name1, key_name2, ... | VARCHAR | 需要获取Value的Key值列表。 |
示例
- 测试数据
表 1. T1 str(VARCHAR) split1(VARCHAR) split2(VARCHAR) key1(VARCHAR) key2(VARCHAR) k1=v1;k2=v2 ; = k1 k2 NULL ; = k1 k2 k1:v1;k2:v2 ; : k1 k3 k1:v1;k2:v2 ; = k1 k2 k1:v1;k2:v2 , : k1 k2 k1:v1;k2=v2 ; : k1 k2 k1:v1abck2:v2 abc : k1 k2 k1:v1;k2=v2 ; := k1 k2 k1:v1 k2:v2 NULL : k1 k2 k1 v1;k2 v2 ; NULL k1 k2 - 测试语句
SELECT c1, c2 FROM T1, lateral table(MULTI_KEYVALUE(str, split1, split2, key1, key2)) as T(c1, c2);
- 测试结果
c1(VARCHAR) c2(VARCHAR) v1 v2 NULL NULL v1 NULL NULL NULL NULL NULL v1 NULL v1 v2 v1 v2 v1 v2 v1 v2