依照您文中所使用的函數NVL,您應該使用的是Oracle吧?
(請看置底版規,發文時必須附上DBMS......不過現在版主也都放牛吃草了)
在Oracle的SQL 中,盡可能的不要在where條件之後使用函數,這樣對該句
SQL的performance會比較不好,如果您是在一個學習的過程中,這是一個
蠻重要的觀念,so......
依照您的問題點,在下的建議會是
SELECT *
FROM TABLE DFV
WHERE ((DFV.ATTRIBUTE1 = :P_MEA OR :P_MEA IS NULL)
OR (DFV.ATTRIBUTE1 = :P_MEA1 OR :P_MEA1 IS NULL));
使用這樣的方式來代替NVL的使用,會是比較好的方式
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.117.117.249