解决方案 »

  1.   

    case when 代替或者decode
      

  2.   

    如果 t.id_sup为空,则没有 t.id_sup = ss.supplier_id :
    decode(t.id_sup,null,ss.supplier_id,t.id_sup)=ss.supplier_id 
    如果 t.id_maintenance为空,则没有 t.id_maintenance = sss.supplier_id:
    decode(t.id_maintenance,null,sss.supplier_id,t.id_maintenance)=sss.supplier_id
      

  3.   

    用decode函数:
    DECODE (t.id_sup, NULL, ss.supplier_id, t.id_sup) = ss.supplier_id用case语句
    (CASE NVL (t.id_sup, 0) WHEN 0 THEN ss.supplier_id ELSE t.id_sup END) = ss.supplier_id
      

  4.   

    case when与 decode都可以。
    再复杂的用动态SQL语句更好.