當您需要解析資料表格儲存體的索引值對字串,並提取出鍵對應的值時,MaxCompute支援使用KEYVALUE函數,將字串str按照split1分成Key-Value對,並按split2將Key-Value對分開,返回key所對應的Value。本文為您介紹KEYVALUE函數的說明和使用樣本。
命令格式
KEYVALUE(STRING <str>, [STRING <split1>, STRING <split2>,] STRING <key>)
KEYVALUE(STRING <str>, STRING <key>) 參數說明
參數 | 是否必填 | 說明 |
str | 是 | STRING類型。待拆分的字串。 |
split1、split2 | 否 | STRING類型。用於作為分隔字元的字串,按照指定的兩個分隔字元拆分源字串。如果運算式中沒有指定這兩項,預設split1為 |
key | 是 | STRING類型。將字串按照split1和split2拆分後,返回key值對應的Value。 |
傳回值說明
返回STRING類型。返回規則如下:
split1或split2值為NULL時,返回NULL。
str或key值為NULL或沒有匹配的key時,返回NULL。
如果有多個Key-Value匹配,返回第一個匹配上的key對應的Value。
使用樣本
樣本1:將字串
0:1\;1:2拆分為Key-Value對,返回Key值1對應的Value。命令樣本如下。--返回2。 SELECT KEYVALUE('0:1\;1:2', 1);沒有指定split1和split2,預設split1為
";",split2為":"。經過split1拆分後,Key-Value對為
0:1\,1:2。經過split2拆分後變為如下。0 1\ 1 2返回Key為1所對應的Value值2。
樣本2:將字串
“\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;”按照“\;”拆分為Key-Value對,再按照":"將Key-Value分開,返回Key值tf對應的Value。命令樣本如下。--返回21910。 SELECT KEYVALUE("\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;","\;",":","tf");將
“\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;”按照“\;”拆分後,得出的Key-Value對如下所示。decreaseStore:1,xcard:1,isB2C:1,tf:21910,cart:1,shipping:2,pf:0,market:shoes,instPayAmount:0按照
":"拆分後,結果如下所示。decreaseStore 1 xcard 1 isB2C 1 tf 21910 cart 1 shipping 2 pf 0 market shoes instPayAmount 0返回Key為
tf對應的Value值21910。
相關函數
KEYVALUE函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數。