雪花。如何检查子数组是否存在于另一个数组中?

最大限度

我想检查一个数组中的所有项目是否都出现在另一个数组中。我一直在浏览 Snowflake 文档,但找不到任何好的方法。例如在 PostgreSQL 中,它很容易通过<@(ie ARRAY[2,7] <@ ARRAY[1,7,4,2,6]) 解决。关于如何在没有丑陋的黑客攻击的情况下优雅地解决它的任何想法?谢谢!

卢卡斯·索兹达

带有和大小的逻辑ARRAY_INTERSECTION可以用 UDF 包装:

CREATE FUNCTION is_array_subarray (arr1 ARRAY, arr2 ARRAY)
  RETURNS BOOLEAN
  AS 'ARRAY_SIZE(ARRAY_INTERSECTION(arr1,arr2)) = ARRAY_SIZE(arr1)';

询问:

SELECT a1, a2, is_array_subarray (a1, a2) AS res
FROM (SELECT ARRAY_CONSTRUCT(2,7), ARRAY_CONSTRUCT(1,7,4,2,6) 
      UNION
      SELECT ARRAY_CONSTRUCT(2,7,2), ARRAY_CONSTRUCT(1,7,4,2,6) 
     ) AS s(a1, a2);

输出:

在此处输入图像描述

(*) 非独特元素的处理可能需要根据需要进行细化。这里需要完全匹配

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查一个数组中的元素是否存在于另一个数组中

检查数组的数组元素是否存在于python中的另一个数组中

蜂巢:如何检查一个数组中的值是否存在于另一个数组中?

逐列检查数组中的元素是否存在于另一个数组中

检查数组中的所有元素是否都存在于另一个数组中

检查对象值数组是否存在于另一个数组中,但长度不同

检查所有数组值是否存在于另一个数组值中

检查键是否存在于另一个数组中并从中获取值并推送到另一个数组

检查一个数组列表中的值是否存在于另一个数组列表中

检查一个数组中的任何元素是否存在于另一个数组中

如何检查结果数组元素是否存在于另一个结果数组中

检查一个数组的元素是否存在于另一个数组中 - 在某个索引内

jQuery如何检查一组对象是否存在于另一个数组对象中

如何检查数组中的每个元素以查看它是否存在于另一个数组中,并将第一个数组中的元素替换为其他元素?

Java8-数组项存在于另一个数组中

仅显示存在于另一个数组中的数组元素

使用 lodash 过滤对象数组并检查对象属性值是否存在于另一个数组中

如何检查一个 json 对象数组中的 id 是否存在于另一个 json 对象嵌套数组中?

检查数组值是否存在于另一个包含逗号分隔值的数组值中

如果不存在于另一个数组中,如何删除数组中的对象

如何使用SQL检查一个表中存在的json值数组是否存在于另一个表中?

如果值存在于另一个数组中,如何递归过滤数组

如何通过存在于另一个数组中的元素过滤我的数组

如何检查当前数组中的对象是否存在于前一个数组中

从一个数组中删除存在于另一个数组中的项目?

打字稿-一个数组中的检查值存在于另一个数组中

忽略对象中存在于JavaScript另一个数组中的键

如何仅保留作为子字符串存在于另一个数组中的数组元素

检查一个值是否存在于两个或多个数组中