有没有一种方法可以检索指定了包含所有值的列的行ID(Oracle数据库)



我有一个如下表:

| Col1 | Col2       |
| ---- | ---------- |
| A    | val1       |
| A    | val2       |
| B    | val1       |
| C    | val3       |

我想接收Col1的那些值,它包含val1val2都作为Col2(即A(的行。我知道我可以使用INTERSECT来完成这项工作,但这需要我将多个子句拼凑在一起。有没有一种方法可以使用单个子句来实现这一点,比如IN ALL之类的子句?

否,但您可以使用group byhaving。假设你没有重复:

select col1
from t
where col2 in (val1, val2)
group by col1
having count(*) = 2;

2与列表中的项目数相匹配。

最新更新