在 SQL Server 2008 中,我有下面的表示例。
Name Num
----------
John 20
John 30
Peter 10
Peter 20
Peter 30
Marry 20
Marry 30
Mike 10
Mike 20
Mike 30
Phil 10
Phil 30
我想要 Num = 10 和 Num = 20 的记录。查询将返回
Name Num
----------
Peter 10
Peter 20
Mike 10
Mike 20
非常感谢。
最佳答案
你想要这样的东西:
SELECT Name, Num
FROM tbl
WHERE Name IN (
SELECT Name FROM tbl
WHERE Num IN (10, 20)
GROUP BY Name
HAVING COUNT(*) = 2 -- Must have all items in the set of 2
)
AND Num IN (10, 20) -- still need to restrict, since the set is not maximal
但是还有其他方法可以给“具有以下所有属性的项目集”猫换皮。
关于sql-server - T-SQL 同一列上的两个Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4382462/