三张表
X
XM XB WH
1 甲 1 3
2 乙 1 3
3 丙 2 4
4 丁 2 4

Y
LBID DMID DMMC
1 1 1 男
2 1 2 女
3 2 3 本科
4 2 4 高中

Z
LBID LB名称
1 1 性别
2 2 文化 要求得出这样的结果
XM XB WH
1 甲 男 本科
2 乙 男 本科
3 丙 女 高中
4 丁 女 高中分给前2位 谢谢!

解决方案 »

  1.   

    X
      XM XB WH
    1 甲 1 3
    2 乙 1 3
    3 丙 2 4
    4 丁 2 4Y 
      LBID DMID DMMC
    1 1 1 男
    2 1 2 女
    3 2 3 本科
    4 2 4 高中Z
      LBID LB名称 
    1 1 性别 
    2 2 文化 要求得出这样的结果
       XM XB WH
    1 甲 男 本科
    2 乙 男 本科
    3 丙 女 高中
    4 丁 女 高中
      

  2.   

    select x.xm, decode(x.xb, 1, '男', 2, '女') xb, y.dmmc
      from x, y
     where x.wh = y.dmid
      

  3.   

    你的WH包含字符串组合?先要拆分字符串
    WH
    1 3可以参考我的BLOG
    http://blog.csdn.net/java3344520/archive/2010/07/13/5731758.aspx
      

  4.   


    SELECT X.XM, Y1.DMMC, Y2.DMMC
      FROM X,
           (SELECT *
              FROM Y, Z
             WHERE Y.LBID = Z.LBID AND Z.LB名称 = '性别') Y1,
           (SELECT *
              FROM Y, Z
             WHERE Y.LBID = Z.LBID AND Z.LB名称 = '文化') Y2
     WHERE X.XB = Y1.DMID AND X.WH = Y2.DMID
      

  5.   

    with X as(
    select '甲' xm,1 xb,3 wh from dual
    union all
    select '乙' xm,1 xb,3 wh from dual
    union all
    select '丙' xm,2 xb,4 wh from dual
    union all
    select '丁' xm,2 xb,4 wh from dual
    ),Y as(
    select 1 lbid,1 dmid,'男' dmmc from dual
    union all
    select 1 lbid,2 dmid,'女' dmmc from dual
    union all
    select 2 lbid,3 dmid,'本科' dmmc from dual
    union all
    select 2 lbid,4 dmid,'高中' dmmc from dual
    ),Z as(
    select 1 lbid,'性别' lbmc from dual
    union all
    select 2 lbid,'文化' lbmc from dual
    )
    select xm,max(xb),max(wh) from(
    select x.xm,y.dmmc xb,null wh  from x,y,z where x.xb = y.dmid and y.lbid = z.lbid
    union all
    select x.xm,null xb,y.dmmc wh  from x,y,z where x.wh = y.dmid and y.lbid = z.lbid
    ) group by xm
      

  6.   


    select x.xm,
    y1.dmmc as xb,
    y2.dmmc as wh
    from x,y y1,y y2,z z1,z z2
    where x.xb=y1.dmid(+) 
    and y1.lbid=z1.lbid(+) 
    and 1=z1.lbid(+)
    and x.wh=y2.dmid(+) 
    and y2.lbid=z2.lbid(+) 
    and 2=z2.lbid(+)
      

  7.   


    select a.xm xm,a.dmmc xb,y.dmmc wh from
           (select x.xm,y.dmmc,x.wh from x,y where x.xb =y.dmid ) a, y
           where a.wh=y.dmid