我想知道是否可以用一个确切的陈述来选择数据。
假设我的数据库中有2个客户,他们都获得了值“1”,但其中一个也有一个名为“2”的值。
如何只使用客户编号1获得结果?我有兴趣让所有仅的客户的价值为“1”,而不是“1”,“2”,“3”等。
更具体的描述:
**Customer 1:**
Name: "Peter"
Value: "1"
**Customer 2:**
Name: "Chris"
Value: "1", "2", "3"
现在,我只想要Customer 1的结果,其值为“1”
答案 0 :(得分:0)
您可以使用not exists
:
select t.*
from t
where t.value = 1 and
not exists (select 1 from t t2 where t2.name = t.name and t2.value <> 1);
答案 1 :(得分:0)
您可以将GROUP BY
与COUNT
一起使用,例如:
SELECT Name
FROM customer
WHERE Value = "1"
GROUP BY Name
HAVING COUNT(DISTINCT(Value)) = 1;