2016-06-11 2 views
0

У меня такая же проблема: SQL select rows with only a certain value in themSQL выбрать только строки с только определенными значениями в них

, но решение, которое я нашел работу только для одного значения заданного, я имею в виду, что я хочу работать для ряд значений {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» для указанной таблицы, я не хочу иметь C, потому что он имеет другие значения cols 3! = 1 или 2, Решение в ссылке позволяет сделать это только для одного значения, но я wan т продлить его до 2 значения или плюс, кто-то может мне помочь, пожалуйста: D

+0

И почему бы не быть "D"? –

+0

"D" имеет только col3 = 1? –

+0

D имеет только cols3 = 1, это будет D, если у нас есть еще одна строка с 'D' - '2' – Evangelito

ответ

0

Вы можете использовать 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 
+0

, это решение сработало для меня, и я смог расширить множество значений, thx – Evangelito

0

ВЫБРАТЬ цв 2 FROM TABLE WHERE (столбец 3 = 1 ИЛИ цв 3 = 2) И цв 2 НЕ В (SELECT col 2 ОТ ТАБЛИЦЫ ГДЕ (col 3 <> 2 И col 3 <> 1));