指定されたstruct配列に基づいてマップを作成します。
構文
map<K, V> map_from_entries([string <mapDupKeyPolicy>,] array <struct<K, V> , struct<K, V>[,...]>)パラメーター
mapDupKeyPolicy: オプション。 STRING型の値。 このパラメーターは、重複キーの処理に使用されるメソッドを指定します。 有効な値:
exception: エラーが返されます。
last_win: 後者のキーは前者のキーを上書きします。
セッションレベルで
odps.sql.map.key.de dup.policyパラメーターを設定して、重複キーの処理に使用されるメソッドを指定することもできます。 たとえば、odps.sql.map.key.de dup.policyを例外に設定できます。 このパラメーターを設定しない場合、デフォルト値last_winが使用されます。説明MaxComputeの動作実装は、mapDupKeyPolicyに基づいて決定されます。 mapDupKeyPolicyを指定しない場合、
odps.sql.map.key.de dup.policyの値が使用されます。STRUCTタイプのデータが必要です。 Kは、生成されたマップ内のキーに対応する。 Vは、生成されたマップの値に対応する。
struct<K, V>のKとVは、struct配列のキーと値を指定します。
戻り値
MAPタイプの値が返されます。 戻り値は、次のルールによって異なります。
struct配列がnullの場合、nullが返されます。
struct配列のフィールド数が2でない場合、またはstruct配列のkeyがnullの場合、エラーが返されます。
例
-- The return value is {1:a, 2:b}.
select map_from_entries(array(struct(1, 'a'), struct(2, 'b')));
-- The return value is {1:a, 2:c}.
select map_from_entries(array(struct(1, 'a'), struct(2, 'b'), struct(2, 'c')));関連関数
MAP_FROM_ENTRIESは複合型関数です。 ARRAY、MAP、STRUCT、JSONなどの複雑なデータ型のデータを処理するために使用される関数の詳細については、複合型関数.