0
我想在執行AND
運算符之前設置IF
聲明。Oracle DB - 如何在AND運算符中設置IF語句?
例如:
PROCEDURE STORE_SIGNLOOP_APPROVER
(
userID in varchar2
isManager in varchar2
result out ref_cursor
)
AS
BEGIN
SELECT user_role
FROM users
WHERE user_id = userID
AND **IF isManager = 'true'** user_id IN (SELECT user id from managers)
END;
爲什麼要預先計算「ismanager」?你可以在你的proc中檢查它。如果用戶也在管理者表中,那麼他是一名管理者。爲什麼你使用varchar作爲true/fale值? –
嗨,它只是一個簡單的例子來解釋我的目的。你對它不是很好;) –
對於這個「例子」,我只是簡單地將管理人員加入到用戶的行列中。如果用戶不是管理員,則不需要結果。不知道爲什麼要使用一個過程:https://stackoverflow.com/a/25419698/7505395 –