※ 引述《justyes (justyes)》之銘言:
: 目前遇到一個問題,原本只有一個參數寫法如下
: and dfv.ATTRIBUTE1 in nvl(:P_MEA,dfv.ATTRIBUTE1)
: 但後來想再增加一個篩選條件,改寫如下
: and dfv.ATTRIBUTE1 in (nvl(:P_MEA,dfv.ATTRIBUTE1),nvl(:P_MEA1,null))
: 但測試時,值還是輸入出來
: 不知小弟哪寫錯
and dfv.ATTRIBUTE1 in (nvl(:P_MEA,dfv.ATTRIBUTE1),nvl(:P_MEA1,null))
等同於
and ( dfv.ATTRIBUTE1 in (nvl(:P_MEA,dfv.ATTRIBUTE1))
OR dfv.ATTRIBUTE1 in (nvl(:P_MEA1,null))
)
如果你希望增加一個篩選條件,
應該是加一個 AND 條件才對
EX:
and dfv.ATTRIBUTE1 in nvl(:P_MEA,dfv.ATTRIBUTE1)
AND dfv.ATTRIBUTE1 = :P_MEA1
另外...
nvl(:P_MEA1,null) <-- 這樣的語法似乎有點詭異??
==> P_MEA1 如果是 NULL 的話, 就給他 NULL ... 囧
然後又把 NULL 丟去當 AND 條件.... <囧>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.131.23