SQL中的组合

SQL中的组合,sql,oracle,Sql,Oracle,A B 查询应获取具有以下组合的表A和联接B的唯一ID 预期结果 ID_DESC1 DESC 123 ACTIVE 124 SAR 126 SAR1 127 REAL 130 TRI 131 ACC Result should只获取ID 1,2,4而不是3这是g组的一个示例 Combination1: - ACTIVE,SAR,SAR1 Combination2: - REAL,SAR,SAR1 Combinatio

A

B

查询应获取具有以下组合的表A和联接B的唯一ID 预期结果

ID_DESC1    DESC
123       ACTIVE
124       SAR
126       SAR1
127       REAL
130       TRI
131       ACC

Result should只获取ID 1,2,4而不是3

这是g组的一个示例

Combination1: - ACTIVE,SAR,SAR1
Combination2: - REAL,SAR,SAR1
Combination3: - ACC,SAR,SAR1

上面的查询可以通过oracle中的LISTAGG来回答

用您正在使用的数据库标记您的问题。您的问题严重不足。这里的东西,我希望这个答案不包括3。排除3的依据是什么,或者其他的依据是什么?是因为其他人都有SAR和SAR1吗?或者,您是否总是提供某些“组合”,并希望任何符合整个集合条件的ID,以便一个ID包含组合的所有部分?请编辑并更新您的问题并进行澄清。不要试图通过有限的评论发表文章,只会让评论日志膨胀。嗨,德拉普,我已经用Listag函数得到了我的答案,这个问题很完美,我想你理解得不太正确。请仔细阅读问题Hi Gordon,上面的查询结果表明使用Oracle数据库的关系运算符无效
Combination1: - ACTIVE,SAR,SAR1
Combination2: - REAL,SAR,SAR1
Combination3: - ACC,SAR,SAR1
select a.id
from a join
     b
     on a.id_desc1 = b.id_desc1
group by a.id
having sum(case when b.desc = 'SAR' then 1 else 0 end) > 0 and
       sum(case when b.desc = 'SAR1' then 1 else 0 end) > 0 and
       sum(case when b.desc in ('ACTIVE', 'REAL', 'ACC') then 1 else 0 end) > 0;