Sql 获取两行具有特定值的列
我有一张这样的桌子:Sql 获取两行具有特定值的列,sql,Sql,我有一张这样的桌子: | col1 | col2 | |------|------| | a | 1 | | a | 2 | | a | 3 | | b | 1 | | b | 3 | | c | 1 | | c | 2 | 我需要找到col1的值,其中存在具有相同col1值的两行,其col2值分别为1和2 结果将是: | col1 | |------| | a | | c | 您可以使用所需的c
| col1 | col2 |
|------|------|
| a | 1 |
| a | 2 |
| a | 3 |
| b | 1 |
| b | 3 |
| c | 1 |
| c | 2 |
我需要找到col1
的值,其中存在具有相同col1
值的两行,其col2值分别为1和2
结果将是:
| col1 |
|------|
| a |
| c |
您可以使用所需的
col2
值筛选行,然后按col1
分组,并仅使用count=2
select col1
from yourTable
where col2 in (1, 2)
group by col1
having count(distinct col2) = 2
您可以使用所需的
col2
值筛选行,然后按col1
分组,并仅使用count=2
select col1
from yourTable
where col2 in (1, 2)
group by col1
having count(distinct col2) = 2
另一个解决办法是
select col1
from your_table
group by col1
having sum(case when col2 = 1 then 1 else 0 end) > 0
and sum(case when col2 = 2 then 1 else 0 end) > 0
另一个解决办法是
select col1
from your_table
group by col1
having sum(case when col2 = 1 then 1 else 0 end) > 0
and sum(case when col2 = 2 then 1 else 0 end) > 0