日期:2014-05-18 浏览次数:20614 次
select * from tb t where not exists(select 1 from tb where a=t.a and b<t.b)
------解决方案--------------------
create table T (a varchar(16), b varchar(16)) insert into T select 'A1','B1' union select 'A1','B2' union select 'A2','B1' union select 'A3','B2' declare @tb_a table (id int identity(1,1), ch varchar(16)) declare @tb_b table (id int identity(1,1), ch varchar(16)) insert into @tb_a select distinct a from T order by a insert into @tb_b select distinct b from T order by b select i.id, a.ch, b.ch from (select id from @tb_a union select id from @tb_b) as i left join @tb_a as a on a.id = i.id left join @tb_b as b on b.id = i.id drop table T -- id ch ch -- 1 A1 B1 -- 2 A2 B2 -- 3 A3