雪花合并对象/ json

时间:2018-11-01 16:21:02

标签: snowflake-datawarehouse snowflake

有什么办法可以合并雪花中的2个对象?我找到了https://docs.snowflake.net/manuals/sql-reference/functions/object_insert.html,但是一次只能设置/更新一个密钥。我想合并2个对象(js中的Object.assign()之类的东西)。 还尝试通过转换为数组,从该数组连接并构造对象来找到解决方法,但未能使其正常工作。

谢谢!

1 个答案:

答案 0 :(得分:3)

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  |
 }         |
-----------+