oracle中两张表合并后去重复的问题

2025-02-26 14:27:05
推荐回答(3个)
回答1:

  select 客户名称,客户ID from A
  union
  select 客户名称,客户ID from B

  --------------
  如果还有其他字段用下面这个
  select客户名称,客户ID,其他字段
  from (select 客户名称,客户ID ,其他字段,
   row_number() over (partition by 客户名称,客户ID order by 其他某个字段) rn
   from (select 客户名称,客户ID, 其他字段 from A
   union
   select 客户名称,客户ID,其他字段 from B
   )
   )
  where rn=1;

回答2:

用union就可以去重,select * from A union select * from B;
既然A,B中的内容是重复的,那么保留A的还是保留B的不是一样的么?

回答3:

union是交集的意思,union all是并集的意思
按你意思可以这样写
select 客户名称,客户ID from a
union
select 客户名称,客户ID from b;
希望可以帮到你