select t1.id t1.name,t1.age,t1.status  from table1 t1 decode(t1.status,0,left join table2 t2 on t2.id=t1.id,left join table3 t3 on t3.id=t1.id)我就想通过decode 来动态改变条件 不过你要看清楚了 是要加动态改变关联的表 不只是一个值要是oracle 也有 javascript eval这样的函数就好了

解决方案 »

  1.   

    动态游标http://blog.csdn.net/xjzdr/article/details/2038904
      

  2.   

    select t1.id t1.name,t1.age,t1.status from table1 t1 left join table2 t2 on t2.id=t1.id WHERE t1.status=0
    UNION ALL 
    select t1.id t1.name,t1.age,t1.status from table1 t1 left join table3 t3 on t3.id=t1.id WHERE t1.status!=0;
      

  3.   

    楼上的思路,都挺好,也可以实现楼主想要的结果。
    单纯从decode来考虑的话,好像不太好实现,毕竟不是判断一个值啊,呵呵