多的一方最多只会有4条记录
表A                             表B
      ID   NAME....                      ID      NAME     A.ID
      001                            00101    t1       001 
                                         00102    t2       001 
                                         00103    t3       001 
                                         00104    t4       001 
想做一张视图 展示如下效果
   A.ID    A.NAME     B.NAME1     B.NAME2      B.NAME3    B.NAME4
   001               t1          t2          t3         t4

解决方案 »

  1.   


    select A.ID,
           A.NAME,
           WMSYS.WM_CONCAT(B.NAME) 
    FROM A,B 
    WHERE A.ID=B.AID 
    group by A.ID,A.NAME把上面的查询外面套一个外查询,把B.NAME字段值用substr分开取出来,省略,你自己练
      

  2.   


    with a as(
         select  '001' id,'' name from dual)
    ,b as(
       select '00101' id,'t1' name,'001' a_id from dual union all
       select '00102','t2','001' from dual union all
       select '00103','t3','001' from dual union all
       select '00104','t4','001' from dual)
    select a.id,a.name,wmsys.wm_concat(b.name)
    from a,b
    where a.id=b.a_id
    group by a.id,a.name;ID  NAME WMSYS.WM_CONCAT(B.NAME)
    --- ---- --------------------------------------------------------------------------------
    001  t1,t2,t3,t4