oracle 一个表多条重复记录只取一条的解决方法

A  表: 

id     name

1      张三

2      李四

 

 

B    表:   id  为  A  表 主键

id    name

1     王五

1      小李

1     王八

2     赵四

2     李五

 

需要的结果为:

1   张三  ,  王五

2  李四   赵四

 

SQL 语句为:

select * from  a  t5  left join   

 (select  id  ,name from 

  (select row_number()  over(partition by id order by name ) t1 , t2.id,t2.name from b t2) 

where t1 = 1  )  t3   on t3.id = t5.id

 

 

单表查询,多条重复记录只取一条

select * from 

(

  select  row_number() over(partition by  重复字段 order by 时间字段   倒序还是顺序) t1, t2.字段1, t2.字段2    from 表  t2

  where 1=1 

 查询条件

)where t1 = 1

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值