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

 

你可能感兴趣的:(程序人生)