34,837
社区成员




DECLARE @test table (
Name varchar(10),
Course varchar(10),
Mark float)
insert into @test
select '张三 ', '语文 ', 81 union
select '张三 ', '数学 ', 75 union
select '李四 ', '语文 ', 76 union
select '李四 ', '数学 ', 90 union
select '王五 ', '英语 ', 100 union
select '王五 ', '语文 ', 81
SELECT NAME FROM @test GROUP BY name HAVING count(*)=count(case when mark>=80 then 1 else null end)
--或者
SELECT NAME FROM @test GROUP BY name HAVING count(*)=sum(case when mark>=80 then 1 else 0 end)