本ページでは、Realtime Compute でテーブル値関数 MULTI_KEYVALUE を使用する方法について説明します。

MULTI_KEYVALUE 関数は、Realtime Compute V2.2.2 以降でのみ使用することができます。

構文

MULTI_KEYVALUE(VARCHAR str, VARCHAR split1, VARCHAR split2, VARCHAR key_name1, VARCHAR key_name2, ...)

入力パラメーター

  • str

    キーと値のペアの文字列。 このパラメーターは VARCHAR タイプです。
  • split1

    VARCHAR タイプのキーと値のペアのセパレータ。 split1 が null の場合は、空白がキーと値のペアの区切り文字として使用されます。 split1 の値に複数の文字が含まれている場合は、split1 は一連の区切り文字を指定し、値の各文字は有効な区切り文字を指定します。
  • split2

    VARCHAR タイプの Key-Value セパレータ。 split2 が null の場合は、空白がキーと値の区切り文字として使用されます。 split2 の値に複数の文字が含まれている場合は、split2 は一連の区切り文字を指定し、値の各文字は有効な区切り文字を指定します。
  • key_name1, key_name2, ...

    値が抽出されるキー名のリスト。 このパラメーターは VARCHAR タイプです。
関数の説明: この関数は、キーと値のペアの区切り文字とキーと値の区切り文字に基づいて、文字列内のキーと値のペアを解析します。 この関数は、key_name1、key_name2、...リスト内のキー名の値のリストを返します。 key_name が存在しない場合は、値として null が返されます。
  • テストデータ
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 cab : 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