我有这个查询:
Select ID, Groucode
from mytable
返回此结果:
ID GroupCode
---------------
60 00
60 01
70 00
80 00
80 01
90 00
我想要的是仅显示带有'00'和'01'的行,如下所示:
ID GroupCode
---------------
60 00
60 01
80 00
80 01
答案 0 :(得分:4)
我们可以在此处使用聚合:
WITH cte AS (
SELECT ID
FROM mytable
WHERE GroupCode IN ('00', '01')
GROUP BY ID
HAVING COUNT(DISTINCT GroupCode) = 2
)
SELECT *
FROM mytable
WHERE ID IN (SELECT ID FROM cte);
请注意,如果GroupCode
列确实是数字,那么将数据显示为00
和01
并不能反映基础数据,因为SQL Server实际上只会处理这些值分别为0和1。在这种情况下,您可以略微修改我的上述查询。
答案 1 :(得分:0)
我是SQL Server的新手,请找到我对上述概念的回答,如果我错了,您可以使我正确。
Select mytable.* from mytable
inner join
(select id from mytable group by id having count(id)>1) as table2 on mytable.id = table2.id