我有问题从表中分组一些数据。 只有当num = 1和num = 99的行名称不同时,我才想获得num = 1的完整行。
这是一个例子:
id | name | num
001 frank 1
001 jonh 2
001 alfred 99
002 annie 1
002 maurice 99
003 mary 1
003 mary 99
我想得到这个结果:
id | name | num
001 frank 1
002 annie 1
答案 0 :(得分:0)
select '001' as id, cast('frank' as nvarchar(10)) as name , 1 as num
into #temp1
insert into #temp1(id,[name],num)
values
('001', 'jonh' , '2'),
('001', 'alfred' , '99'),
('002', 'annie' , '1'),
('002', 'maurice', '99'),
('003', 'mary' , '1'),
('003', 'mary' , '99')
select * from #temp1
where name not in (select name from #temp1 group by name having count(*)>1)
and num = 1
请阅读Igor的评论