SQL select 只有特定值的行
SQL select the only rows with only a certain values in them
我这里也有同样的问题:SQL select rows with only a certain value in them
但我找到的解决方案仅适用于给定的一个值,我的意思是我希望它适用于多个值 {2 或 +},例如:
Col 1 Col 2 Col 3
1 A 1
2 A 2
3 B 1
4 C 1
5 C 2
6 D 1
7 C 3
我想获取仅包含 cols3 = 1 和 cols3 =2 的所有行(仅值 1 和 2)并且输出将是:"A" 对于给定的 table,我不想有 C 因为它有另一个值 cols 3 != 1 或 2,
link 中的解决方案只允许为一个值执行此操作,但我想将其扩展到 2 个值或以上,有人可以帮助我吗:D
SELECT 第 2 栏
来自 TABLE
其中(第 3 栏 = 1
或第 3 栏 =2)
AND col 2 不在
(SELECT 第 2 列
来自 TABLE
哪里(第 3 列 <> 2
AND 第 3 列 <> 1));
您可以为此使用 conditional aggregation
:
select col2
from yourtable
group by col2
having sum(col3=1) > 0
and sum(col3=2) > 0
and sum(col3 not in (1,2)) = 0
我这里也有同样的问题:SQL select rows with only a certain value in them
但我找到的解决方案仅适用于给定的一个值,我的意思是我希望它适用于多个值 {2 或 +},例如:
Col 1 Col 2 Col 3
1 A 1
2 A 2
3 B 1
4 C 1
5 C 2
6 D 1
7 C 3
我想获取仅包含 cols3 = 1 和 cols3 =2 的所有行(仅值 1 和 2)并且输出将是:"A" 对于给定的 table,我不想有 C 因为它有另一个值 cols 3 != 1 或 2, link 中的解决方案只允许为一个值执行此操作,但我想将其扩展到 2 个值或以上,有人可以帮助我吗:D
SELECT 第 2 栏 来自 TABLE 其中(第 3 栏 = 1 或第 3 栏 =2) AND col 2 不在 (SELECT 第 2 列 来自 TABLE 哪里(第 3 列 <> 2 AND 第 3 列 <> 1));
您可以为此使用 conditional aggregation
:
select col2
from yourtable
group by col2
having sum(col3=1) > 0
and sum(col3=2) > 0
and sum(col3 not in (1,2)) = 0