Oracle-PL-SQL FALL in die WHERE-Klausel
Ich weiß, ich könnte wahrscheinlich dies erreichen, indem Sie leicht setzen die zwei Anweisungen in einer CASE-Anweisung selbst, aber ich bin neu in SQL und versuchen zu lernen, zu schreiben, das die effiziente und intelligente Weise, ohne Duplizierung von Logik, und so dass ich vermute, vielleicht gibt es einen Weg wie ich, können Sie eine where-Bedingung line on oder off im Grunde.
Habe ich die folgende Anweisung(was nicht funktioniert btw, fehlt ein Stichwort-es sagt):
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;
Gibt es zwei Fälle auf der Grundlage der input-variable I_CAN_BE_CLOSED, die Werte 0 oder 1.
In einem Fall, den ich möchte, um ihm zu erlauben, zurückzukehren Filialen nur noch mit NULL CLOSE_DATES, und in dem anderen Fall will ich es zurückgeben(beide schließen und die nicht-Schließung von Filialen).
Du musst angemeldet sein, um einen Kommentar abzugeben.
CASE-Ausdruck kann nicht return boolean in Oracle-SQL. Diese sollte gleichwertig sein, vorausgesetzt, dass I_CAN_BE_CLOSED ist niemals NULL:
Edit:
In der Tat beide hier gegebenen Antworten sind richtig... Einfachste Weg, um zu überprüfen, ist zu notieren jedem Fall eine Wahrheit-false-Tabelle:
Es klingt wie Sie nur wollen, um
OR
zusammen ein paar Prädikate