You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Presto SQL中判断一个数组是否包含另一个数组的任意元素

Presto SQL判断数组是否包含指定参考数组任意元素的实现方法

你可以直接使用Presto内置的arrays_overlap()函数完成该需求,该函数的作用是判断两个输入数组是否存在公共元素,存在则返回TRUE,无任何交集则返回FALSE,完全匹配你提的判定规则。

具体使用示例

假设参考数组固定为['chair', 'desk', 'charger'],待判定的数组存储在表your_table的target_arr字段中,查询写法如下:

SELECT
  target_arr,
  arrays_overlap(target_arr, ARRAY['chair', 'desk', 'charger']) AS has_common_element
FROM your_table;

对应你给出的三个测试用例,返回结果如下:

  • 待判定数组为["chair","desk"]:返回true
  • 待判定数组为["screen","charger","computer"]:返回true
  • 待判定数组为["calendar", "screen"]:返回false

补充说明

如果需要忽略元素大小写进行匹配,可以先通过transform函数统一将两个数组的元素转为全小写/全大写再比对:

SELECT
  arrays_overlap(
    transform(target_arr, element -> lower(element)),
    transform(ARRAY['chair', 'desk', 'charger'], element -> lower(element))
  ) AS has_common_element_case_insensitive
FROM your_table;

内容的提问来源于stack exchange,提问作者Stats DUB01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:39:00