SELECT 
    INDCLSCD 
   ,ODRDATE 
   ,case isnull(OBTAINAMT,0) when 0 then 0 else 1 end as flg1
  ,case exists (SELECT OBT.INDCLSCD,ODRDATE FROM OBTAINTRN OBT LEFT JOIN PORDERTRN PODR ON OBT.HODRNO=PODR.PODRNO WHERE ISNULL(PAYDEALFLG,'0') = '0' AND FLG.SEQNO>=10) 
  when 1 then 1 else 0 end as flg2  FROM OBTAINTRN 
  WHERE ISNULL(PAYDEALFLG,'0') = '0' 主要是想让第二个case实现存在数据就flg2=1 不存在就flg=2 要怎么写如果用if语句可以吗?要怎么写!谢谢!

解决方案 »

  1.   

    case (SELECT count(1) FROM OBTAINTRN OBT LEFT JOIN PORDERTRN PODR ON OBT.HODRNO=PODR.PODRNO WHERE ISNULL(PAYDEALFLG,'0') = '0' AND FLG.SEQNO>=10) >0
      when 1 then 1 else 0 end as flg2
      

  2.   

    SELECT 
        INDCLSCD 
       ,ODRDATE 
       ,case isnull(OBTAINAMT,0) when 0 then 0 else 1 end as flg1
      ,case when exists (SELECT 1 FROM PORDERTRN where a.HODRNO=PODRNO AND FLG.SEQNO>=10)-- FLG是哪来的? 
                     then 1 else 0 end as flg2
      FROM OBTAINTRN a
      WHERE ISNULL(PAYDEALFLG,'0') = '0' 
      

  3.   

    SELECT 
        INDCLSCD 
       ,ODRDATE 
       ,case isnull(OBTAINAMT,0) when 0 then 0 else 1 end as flg1
      ,case exists (SELECT OBT.INDCLSCD,ODRDATE FROM OBTAINTRN OBT LEFT JOIN PORDERTRN PODR ON OBT.HODRNO=PODR.PODRNO WHERE ISNULL(PAYDEALFLG,'0') = '0' AND FLG.SEQNO>=10) 
      when 1 then 1 else 2 end as flg2  FROM OBTAINTRN 
      WHERE ISNULL(PAYDEALFLG,'0') = '0' 
      

  4.   

    本来后面还leftjoin其他的表的 为了方便看我给删了 谢谢大哥~!
    另外鄙视下3楼 做日常你就直接説做日常得了,害我费半天劲看最后发现你只是把0改成2,好玩么