雪花合并对象 / json
Snowflake merge object / json
有什么方法可以合并 snowflake 中的 2 个对象吗?我找到了 https://docs.snowflake.net/manuals/sql-reference/functions/object_insert.html,但一次只有 sets/updates 一个键。我想合并 2 个对象(类似于 js 中的 Object.assign()
)。
还尝试通过转换为数组、从该数组连接和构造对象来找到解决方法,但未能成功。
谢谢!
Snowflake 没有这样的内置函数,但是在 Snowflake 的 JavaScript UDFs 中使用 Object.assign()
很简单 :)
create or replace function my_object_assign(o1 VARIANT, o2 VARIANT)
returns VARIANT
language javascript
as 'return Object.assign(O1, O2);';
select my_object_assign(parse_json('{"a":1,"b":2,"c":3}'), parse_json('{"c":4, "d":5}')) as res;
-----------+
RES |
-----------+
{ |
"a": 1, |
"b": 2, |
"c": 4, |
"d": 5 |
} |
-----------+
有什么方法可以合并 snowflake 中的 2 个对象吗?我找到了 https://docs.snowflake.net/manuals/sql-reference/functions/object_insert.html,但一次只有 sets/updates 一个键。我想合并 2 个对象(类似于 js 中的 Object.assign()
)。
还尝试通过转换为数组、从该数组连接和构造对象来找到解决方法,但未能成功。
谢谢!
Snowflake 没有这样的内置函数,但是在 Snowflake 的 JavaScript UDFs 中使用 Object.assign()
很简单 :)
create or replace function my_object_assign(o1 VARIANT, o2 VARIANT)
returns VARIANT
language javascript
as 'return Object.assign(O1, O2);';
select my_object_assign(parse_json('{"a":1,"b":2,"c":3}'), parse_json('{"c":4, "d":5}')) as res;
-----------+
RES |
-----------+
{ |
"a": 1, |
"b": 2, |
"c": 4, |
"d": 5 |
} |
-----------+