すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:STR_TO_MAP

最終更新日:Jan 17, 2025

クエリおよびレポート生成用に文字列をマップに変換する場合は、MaxComputeのSTR_TO_MAP関数を使用できます。 この関数は、delimiter1を使用して文字列をキーと値のペアに分割し、delimiter2を使用してキーと値のペアの値からキーを分離します。 このトピックでは、STR_TO_MAP関数を使用してMaxComputeで文字列をマップに変換する方法について説明します。

構文

str_to_map([string <mapDupKeyPolicy>,] <text> [, <delimiter1> [, <delimiter2>]])

パラメーター

  • mapDupKeyPolicy: オプション。 STRING型の値。 このパラメーターは、重複キーの処理に使用されるメソッドを指定します。 有効な値:

    • exception: エラーが返されます。

    • last_win: 後者のキーは前者のキーを上書きします。

    説明

    MaxComputeの動作実装は、mapDupKeyPolicyに基づいて決定されます。 mapDupKeyPolicyを指定しない場合、odps.sql.map.key.de dup.policyの値が使用されます。

  • text: 必須です。 このパラメーターには、分割する文字列を指定します。

  • delimiter1: オプション。 このパラメータは、STRING型の区切り文字を指定します。 このパラメーターに値を指定しない場合は、コンマ (,) が使用されます。

  • delimiter2: オプション。 このパラメータは、STRING型の区切り文字を指定します。 このパラメーターに値を指定しない場合は、等号 (=) が使用されます。

    説明

    区切り文字が正規表現または特殊文字の場合、エスケープのために区切り文字の前に2つのバックスラッシュ (\) を追加する必要があります。 次の特殊文字を区切り文字として使用できます。 ? + * :

戻り値

MAP<STRING, STRING> 型の値が返されます。 戻り値は、textで指定された文字列がdelimiter1delimiter2を使用して分割されることを示します。

-- The return value is {test1:1, test2:2}. 
SELECT str_to_map('test1&1-test2&2','-','&');

-- The return value is {test1:1, test2:2}. 
SELECT str_to_map("test1.1,test2.2", ",", "\\.");

-- The return value is {test1:1, test2:3}. 
SELECT str_to_map("test1.1,test2.2,test2.3", ",", "\\.");

関連関数

詳細については、「」をご参照ください。その他の関数.