SELECT
S.ORDER_NO ,
I.ODNO
FROM PMSETORDER AS S
LEFT JOIN POITEM AS I ON S.ORDER_NO = I.ORDER_NO
WHERE S.ORDER_NO = @P1
OR i.odno = @P2
從 DMV 抓出傳入的參數值是派工單號,然後更神奇的事情是,Odno 欄位是訂單編號,永遠不會成立的 WHERE 條件,Orz
修正 TSQL,把 Odno 條件拿掉
SELECT
S.ORDER_NO ,
I.ODNO
FROM PMSETORDER AS S
LEFT JOIN POITEM AS I ON S.ORDER_NO = I.ORDER_NO
WHERE S.ORDER_NO = @P1
執行計畫比較![[SQL] WHERE 條件合理性-1](https://farm2.staticflickr.com/1771/43100864764_e9d90c9dbf_z.jpg)
![[SQL] WHERE 條件合理性-2](https://farm2.staticflickr.com/1775/43768918592_77d7a1d6d7.jpg)
![[SQL] WHERE 條件合理性-3](https://farm2.staticflickr.com/1815/43100864874_28c60b4817_z.jpg)
沒有留言:
張貼留言