13.20 JSON_TRANSFORMの演算子UNION

JSON_TRANSFORMの演算子UNIONは、指定された一連の値から、欠落している配列要素を追加します。これは和集合操作です。

これは、その操作のRHS (右辺)で指定されている値を、LHS (左辺)のパス式で対象となっている配列に追加します(それらがその配列内のどこかにすでに存在する場合を除く)。つまり、これはその配列を集合として扱い、要素が重複しないようにします。この操作は、RHSパス式で一致する複数の値のシーケンスを受け入れることができます。

例13-41 JSON_TRANSFORM: 集合としての配列2つの和集合

結果であるオブジェクト内の配列aは、入力配列$.a$.bの和集合です。結果であるオブジェクト内の配列bは変更されていません。


SELECT json_transform('{"a":[ 1, 2, 3 ], "b":[ 2, 5, 3, 4 ]}',
                      UNION '$.a' = PATH '$.b')

結果:

{"a":[ 1,2,3,5,4 ], "b":[ 2,5,3,4 ]}

ノート: これは集合操作であるため、操作後のすべての配列要素の順序定義されていません

演算子UNIONで使用できるハンドラは次のとおりです:

  • ERROR ON MISSING (デフォルト)、IGNORE ON MISSINGCREATE ON MISSINGNULL ON MISSING

  • ERROR ON MISMATCH (デフォルト)。

  • NULL ON NULL (デフォルト)、IGNORE ON NULLERROR ON NULL