我要从两个表中查询多个字段,但是其中的某个字段重复的只显示一次!如何实现,如select a.id ,a.name,b.id,b.name from A a ,B b where a.id = b.aid试过distinct ,但是distinct是所有的字段重复才会去重,我只是当a.id相同时去重,如何实现! a.id 是18位字符串!期待指点!
select * from ( select a.id ,a.name,b.id bid,b.name bname, row_number() over(partition by a.id order by rowid) r1 from A a ,B b where a.id = b.aid ) t where r1 = 1
select a.id ,max(a.name),max(b.id),max(b.name) from A a ,B b where a.id = b.aid group by a.id
select a.id ,max(a.name),max(b.id),max(b.name) from A a ,B b where a.id = b.aid group by a.id
select a.id ,b.id,max(a.name),max(b.name) from A a ,B b where a.id = b.aid group by a.id, b.id
select a.id ,max(a.name),max(b.id),max(b.name) from A a ,B b where a.id = b.aid group by a.id
可以这样 select a.id ,a.name,b.id,b.name from A a ,B b where a.id = b.aid select distinct a.id, (select a1.name from A a1 where a1.id = a.id and rownum = 1) as name1, (select b1.name from B b1 where b1.id = b.id and rownum = 1) as name2 from A a, B b where a.id=b.id
select a.id ,max(a.name),max(b.id),max(b.name) from A a ,B b where a.id = b.aid group by a.id
(
select a.id ,a.name,b.id bid,b.name bname,
row_number() over(partition by a.id order by rowid) r1
from A a ,B b
where a.id = b.aid
) t
where r1 = 1
group by a.id
select a.id ,max(a.name),max(b.id),max(b.name) from A a ,B b where a.id = b.aid
group by a.id
select a.id ,b.id,max(a.name),max(b.name) from A a ,B b where a.id = b.aid
group by a.id, b.id
group by a.id
select a.id ,a.name,b.id,b.name from A a ,B b where a.id = b.aid
select distinct a.id,
(select a1.name from A a1 where a1.id = a.id and rownum = 1) as name1,
(select b1.name from B b1 where b1.id = b.id and rownum = 1) as name2
from A a, B b
where a.id=b.id
group by a.id