tcbs_批量儲存過程_輸入引數為空與非空的分支編寫

wisdomone1發表於2012-05-30

insert 報表表 --一般以rpt打頭,展示給銀行方
select * 
from acct 
where acctnbr=200000002310 
            -- in_mjaccttypcd 為儲存過程輸入引數,此為產品大類,比如個人定期,對公活期等
            and (mjaccttypcd=in_mjaccttypcd or nvl( in_mjaccttypcd  ,'N')='N') 


小結:
    如果如上儲存過程in_mjaccttypcd 輸入引數不為空,則in_mjaccttypcd 起到where條件的過濾作用.否則,就提取所有的產品大類.而這是通過
mjaccttypcd=in_mjaccttypcd or nvl( in_mjaccttypcd  ,'N')='N'來實現.
重點用到了or和nvl,or是隻要滿足其中之一,就為true.針對此時情形,in_mjaccttypcd 為null,則結果是mjaccttypcd=in_mjaccttypcd or nvl( in_mjaccttypcd  ,'N')='N'為

 mjaccttypcd=null or nvl(null,'N')='N',此時nvl(null,'N')='N'滿足條件,如上的sql依舊可以執行.
  主要是掌握此種寫法.

  TCBS的東東蠻多.還要努力.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-731485/,如需轉載,請註明出處,否則將追究法律責任。

相關文章