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

在SQL Developer中判断两个列表是否存在至少一个公共元素的实现方法

SQL Developer 中判断两个列表是否存在公共元素的方案

需求说明

输入两个元素列表,判断是否存在至少一个公共元素,存在则返回结果1,不存在返回0,参考示例:

列表1:(a, b, c)
列表2:(z, a, x)
上述两个列表存在公共元素a,返回结果为1

实现方案(基于Oracle语法,适配SQL Developer)

方案1:集合交集判断法(推荐,适配任意长度列表)

利用Oracle的INTERSECT集合运算取两个列表的交集,搭配EXISTS判断交集是否非空,代码如下:

SELECT CASE WHEN EXISTS (
    -- 转换第一个列表为行集,元素为字符串类型
    SELECT COLUMN_VALUE FROM TABLE(SYS.ODCIVARCHAR2LIST('a','b','c'))
    INTERSECT
    -- 转换第二个列表为行集
    SELECT COLUMN_VALUE FROM TABLE(SYS.ODCIVARCHAR2LIST('z','a','x'))
) THEN 1 ELSE 0 END AS 公共元素标记
FROM DUAL;

说明:

  • 若列表元素为数值类型,将SYS.ODCIVARCHAR2LIST替换为SYS.ODCINUMBERLIST即可
  • 列表元素可按实际需求修改,不限长度
  • 示例代码运行结果为1,符合预期

方案2:IN条件判断法(适合短列表场景)

如果列表元素数量少,可以直接用OR拼接IN判断:

SELECT CASE 
    WHEN 'a' IN ('z','a','x') OR 'b' IN ('z','a','x') OR 'c' IN ('z','a','x') 
    THEN 1 ELSE 0 END AS 公共元素标记
FROM DUAL;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:15:03