某个表中的字段order_no in (select order_no from 表a),如果order_no为空的话,希望是old_order_no in (select order_no from 表a),请问如何实现呢?O(∩_∩)O谢谢

解决方案 »

  1.   

    select nvl(order_no,old_order_no) from A
      

  2.   

    SELECT a.*
    FROM TQMTQJK a,TMMHP02 b 
    WHERE a.BIG_SAMPLE_NO = 'T2108189100'
    and a.sample_plate_no_act = b.aim_mat_no
    and nvl(b.order_no,b.old_order_no) in (select order_no from tqmto45)
    AND GET_SAMPLE_TIME != ' '
    ORDER BY big_sample_no ASC; 
    这么写查不出来东西啊
      

  3.   

    SELECT a.*
    FROM TQMTQJK a,TMMHP02 b  
    WHERE a.BIG_SAMPLE_NO = 'T2108189100' 
    and a.sample_plate_no_act = b.aim_mat_no
    --and nvl(b.order_no,b.old_order_no) in (select order_no from tqmto45) 
    AND GET_SAMPLE_TIME != ' '
    ORDER BY big_sample_no ASC;  少下面這句有無資料?
    and nvl(b.order_no,b.old_order_no) in (select order_no from tqmto45) 下面不為空嗎?如果是的話就用GET_SAMPLE_TIME IS NOT NULL
    GET_SAMPLE_TIME != ' '
      

  4.   

    如果少了那句有資料的話,你先找出b.order_no,b.old_order_no,然後再去看看tqmto45是面是否有這些資料
    SELECT b.order_no,b.old_order_no
    FROM TQMTQJK a,TMMHP02 b   
    WHERE a.BIG_SAMPLE_NO = 'T2108189100'  
    and a.sample_plate_no_act = b.aim_mat_no
    --and nvl(b.order_no,b.old_order_no) in (select order_no from tqmto45)  
    AND GET_SAMPLE_TIME != ' '
    ORDER BY big_sample_no ASC;   
      

  5.   

    DECODE(ORDER_NO,'',OLD_ORDER_NO,ORDER_NO) IN (SELECT ORDER_NO  FROM  table a)
      

  6.   


    decode(order_no,null,old_order_no,order_no) in (select order_no from 表a)