表值的交集(SQL)

时间:2018-11-19 05:05:10

标签: sql oracle

我有以下方式的桌子:


Class | Dept | programs |        
.........................        
1     | 1    |2001      |     
.........................   
1     | 1    |2002      |     
.........................   
2     | 1    |2001      |     
.........................   
2     | 1    |2003      |     
.........................  
3     | 1    |2003      |     
.........................  
3     | 1    |2004      |     
.........................  

我的问题是,当我选择select distinct programs where class in (1,2)时,查询将返回2001、2002、2003。我只想选择1和2都通用的程序,即2001。类似地,当我搜索时(2,3)中的类,它应该只返回2003。

这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以在下面尝试

DEMO

select programs
from tablename t1
where class in (1,2)
group by programs
having count(distinct class) =2