我知道我可以通過輕鬆地將兩個完整的語句放在一個CASE語句本身中來實現這一點,但是我對SQL很陌生,並且試圖學習以最高效和智能的方式編寫這個複製任何邏輯,所以我想也許有一種方法,我可以打開或關閉基本條件線。WHERE子句中的Oracle PL SQL CASE
我有以下語句(不BTW工作,缺少一個關鍵字,它說):
OPEN O_CURSOR FOR
SELECT S.STORE_NO_4_DIGIT AS STORE_NO, S.STORE_NAME
FROM RFS.RF_STORE S
WHERE S.TYPE_CODE != 'W'
AND
CASE I_CAN_BE_CLOSED
WHEN 0 THEN
S.CLOSE_DATE IS NULL
END
ORDER BY S.STORE_NO_4_DIGIT;
有基於輸入變量I_CAN_BE_CLOSED兩種情況下,值0或1。
在一種情況下,我想允許它只返回NULL CLOSE_DATES的商店,而在另一種情況下,我希望它返回(關閉和非關閉商店)。
對不起。賈斯汀毆打你...不知道這是否會工作,除非我不明白甲骨文將如何執行此操作。如果第一個陳述是真的,它不會繼續到第二個? – SomeRandomDeveloper
好吧,我又回到了這裏,我試了一下,我意識到這是更優雅的解決方案。起初我並不確定,因爲我不知道如果SQL發現第一個是真的,SQL將如何處理這兩個語句。但事實並非如此,所以你不需要Justin的答案中的'或'。 – SomeRandomDeveloper
已更新答案,以包含正確性證明。 –