Snowflake cloud data platform 如何检查snowflake中的一个json是否包含另一个json

Snowflake cloud data platform 如何检查snowflake中的一个json是否包含另一个json,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,尽管我认为它会起作用,但下面的方法不起作用 select contains(PARSE_JSON('{"id": 2, "bucket_type": 11}'), PARSE_JSON('{"id": 2}')) ; 上面的查询返回false 有什么方法可以做到这一点吗?请查看以下内容是否适用于您 with first_json as (select parse_json(column1) as src, src:id as id f

尽管我认为它会起作用,但下面的方法不起作用

select contains(PARSE_JSON('{"id": 2, "bucket_type": 11}'), PARSE_JSON('{"id": 2}')) ;
上面的查询返回false


有什么方法可以做到这一点吗?

请查看以下内容是否适用于您

with first_json
as
(select parse_json(column1) as src, src:id as id
from values('{"id": 2, "bucket_type": 11}')),
second_json
as
(select parse_json(column1) as src, src:id as id
from values('{"id": 2}'))
select 
case 
when f.id in(select id from second_json)
then 'true'
        else 'false'
    end as result
from first_json f;

您可以创建一个UDF,该UDF将在以下情况下解析
是\u subset()

CREATE或REPLACE函数是_子集(“a”对象,“b”对象)
返回字符串
语言JAVASCRIPT
作为
$$
isSubset=(超级对象、子对象)=>{
返回Object.keys(subObj).every(ele=>{
if(子对象的类型[ele]=“对象”){
返回isSubset(superObj[ele],subObj[ele]);
}
返回subObj[ele]==superObj[ele]
});
// https://stackoverflow.com/a/61676007/132438
};
退货问题集(a、b);
$$;
现在我们可以测试它:

SELECT是一个子集(PARSE_-JSON('{“id”:2,“bucket_-type”:11}')、PARSE_-JSON('{“id”:2}');
--真的
选择is_子集(PARSE_JSON('{“id”:2}')、PARSE_JSON('{“id”:2,“bucket_type”:11}');
--假的