當(dāng)我們在做報表查詢時籍铁,可以通過參數(shù)來控制查詢的數(shù)據(jù)郁妈,但有時又想不輸入?yún)?shù)時查所有數(shù)據(jù)浑玛,這個能夠?qū)崿F(xiàn)嗎?答案是肯定的噩咪,沒問題顾彰,只要在sql里設(shè)置條件時把NULL加上就可以了,基本的語句就是:id=? or ? is null胃碾。
皕杰報表中輸入?yún)?shù)為空時要取全部數(shù)據(jù)也是用在sql加條件 id=? or ? is null形式涨享,但是有幾種情況這種方法并不適用。
(一)當(dāng)參數(shù)類型為數(shù)組時sql語句用in(?)形式仆百,如果寫id in (?) or ? is null厕隧,如果輸入多個參數(shù)時會報語法錯誤。
解決辦法:
sql語句寫成 SELECT * FROM test where id in (?) or ?=’!EOF’,然后在對應(yīng)的第二個數(shù)據(jù)集參數(shù)處寫if(@參數(shù)名==null,”!EOF”,”!EMF”)即可俄周。
例:
(二) informix數(shù)據(jù)庫不支持 id=? or ? is null語法,同樣sql中寫 id=? or ?=’!EOF’吁讨, 然后在對應(yīng)的第二個數(shù)據(jù)集參數(shù)處寫if(@參數(shù)名==null,”!EOF”,”!EMF”)即可。
(三) DB2數(shù)據(jù)庫不支持 id =? or ? is null語法峦朗。
解決方法同第二種方法建丧。