SQL等于Val并等于Val2的SQL

时间:2015-11-27 14:25:06

标签: sql

如果你有一张表如下:

Col1 Col2
  1   1
  2   1
  3   1
  1   2
  3   2
  2   3

有没有办法写一个SQL查询,其中(Col2 = 1和Col2 = 2),结果是:

Col1
 1
 3

3 个答案:

答案 0 :(得分:4)

您可以使用intersect执行此操作。请注意,这在MySQL中无效。

select col1 from tablename where col2 = 1
intersect 
select col1 from tablename where col2 = 2

答案 1 :(得分:3)

您可以将HAVINGCASE WHEN

一起使用
SELECT Col1
FROM your_table
GROUP BY Col1
HAVING SUM(CASE WHEN Col2 = 1 THEN 1 END) > 0
   AND SUM(CASE WHEN Col2 = 2 THEN 1 END) > 0;

LiveDemo

使用MySQL,您可以写:

SELECT Col1
FROM your_table
GROUP BY Col1
HAVING SUM(Col2 = 1) > 0
   AND SUM(Col2 = 2) > 0;

答案 2 :(得分:1)

自我加入版本:

{{1}}