- カテゴリ:
半構造化データ関数と構造化データ関数 (マップ)
MAP_INSERT¶
入力 MAP 新しいキーと値のペアが挿入された新しい:doc:MAP </sql-reference/data-types-structured> を返します。つまり既存のキーは新しい値に更新されます。
構文¶
引数¶
map新しいキーと値のペアが挿入されるソースマップです。
keyマップに挿入する新しいキー。
updateFlagが TRUE に設定されていない限り、マップ内のすべての既存のキーと異なっている必要があります。valueキーに関連付けられた値です。
オプション
updateFlagブール値フラグで、 TRUE に設定されている場合、新しいキーと値のペアを挿入するのではなく、マップ内のキーに対応する既存の値を更新するために使用される入力値を指定します。
デフォルトは FALSE です。
戻り値¶
新しいキーと値のペアが挿入された入力 MAP、または新しい値で更新された既存のキーで構成される MAP を返します。
使用上の注意¶
キー式の型は、マップのキーの型と一致している必要があります。型が VARCHAR の場合、型は異なる長さにすることができます。
関数は JSON null 値をサポートしますが、 SQL NULL 値またはキーはサポートしません。
keyが NULL 以外の文字列で、valueが JSON null(例:PARSE_JSON('NULL'))の場合は、キーと値のペアが返されたマップに挿入されます。keyが NULL 以外の文字列で、valueが SQL NULL (例:NULL)の場合は、値は JSON null に変換され、キーと値のペアは返されたマップに挿入されます。keyが SQL NULL の場合、キーと値のペアは返されたマップから省略されます。
updateFlagが TRUE に設定される場合、既存の入力keyは入力valueに更新されます。updateFlagが省略されるか FALSE に設定され、入力キーが既にマップに存在する場合、エラーが返されます。updateFlagが TRUE に設定されているけれども、対応するキーがマップにまだ存在しない場合、キーと値のペアが追加されます。
例¶
3つのキーと値のペアを、2つのキーと値のペアを含むマップに挿入します。
1つのキーと値のペアを省略しながら、2つの新しいキーと値のペアを空のマップに挿入します。
Key_Oneは、 JSON null値で構成されています。Key_TwoはSQL NULL 値で構成され、 JSON null 値に変換されます。Key_Threeは、「null」を含む文字列で構成されます。
既存のキーと値のペア("k1": 100)を新しい値("string-value")で更新します。
MAP 値を含む仮テーブルを作成します。
テーブルをクエリしてデータを表示します。
ins_key 列のキーと ins_val 列の値を使用して、attrs 列のマップにキーと値のペアを挿入または更新します。