求一条SQL,去掉重复数据
表T的数据如下,
A B
-------
A1 B1
A1 B2
A2 B1
A3 B2
希望得到
A B
--------
A1 B1
A2 B2
A3
[解决办法]
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 Tselect 'A1','B1' unionselect 'A1','B2' unionselect 'A2','B1' unionselect '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_aselect distinct a from T order by ainsert into @tb_bselect distinct bfrom T order by bselect i.id, a.ch, b.chfrom (select id from @tb_a union select id from @tb_b) as ileft join @tb_a as a on a.id = i.idleft join @tb_b as b on b.id = i.iddrop table T-- id ch ch-- 1 A1 B1-- 2 A2 B2-- 3 A3