当前位置: 代码迷 >> Oracle开发 >> 一条sql如何写
  详细解决方案

一条sql如何写

热度:24   发布时间:2016-04-24 06:40:56.0
【求助】一条sql怎么写
本帖最后由 zhiyi321 于 2014-06-23 15:38:48 编辑


以表A为主表,带出表B中的其他数据,B中多条对应时,随便带出一条数据即可。
求教啊


------解决方案--------------------
引用:


以表A为主表,带出表B中的其他数据,B中多条对应时,随便带出一条数据即可。
求教啊

select t1.a,t1.x,t2.b,t2.c from 
(select a.*,row_number(a.a) over(partition by a.a order by x) rn from a) t1,
(select b.*,row_number(b.a) over(partition by b.a order by b)  rn from b) t2
where t1.a=t2.a and t1.rn=t2.rn

------解决方案--------------------

select af.a, af.x, bf.b, bf.c
  from a af
  left join (select a, b, c, row_number() over(partition by a order by b) rn
               from b) bf
    on af.a = bf.a
   and bf.rn = 1

------解决方案--------------------
先把B中的数据过滤下,用分析函数就好了。然后,用a表同过滤后的b表进行关联进行了,像3楼的那样。
  相关解决方案