0
我有列的表是這樣的:甲骨文選擇 - 多個參數一個欄
ID number
Adress varchar2
Message varchar2
地址可以電子郵件或電話
而且我有這樣一個存儲過程:
PROCEDURE get_messages (
i_email IN varchar2,
i_phone IN varchar2
o_messages OUT messages)
BEGIN
其中獲取電子郵件,電話或兩者。
而在此過程中我要選擇的消息是這樣的:
- 如果i_email和i_phone都是
nulls
我要選擇所有消息 - 如果i_email不
null
和i_phone是null
我想選擇發送到電子郵件 - 所有 消息如果i_phone不
null
和i_email是null
我要選擇發送到手機所有 消息- 如果i_email和i_phone都是不
nulls
我要選擇發送到i_email所有消息和i_phone
- 如果i_email和i_phone都是不
我有困難的時候寫的選擇喜歡這樣。
SELECT * FROM MESSAGES
WHERE (Address = i_email OR i_email IS NULL)
OR
(Address = i_phone OR i_phone IS NULL)
但它只能如果價值觀不nulls
謝謝它的工作原理,但爲什麼你要添加1 = 1,我刪除了它,它似乎是它的工作原理反正 – user2412672
@ user2412672通過這兩個值'NULL'那麼就沒有1 = 1 –
工作我做了,它的工作 – user2412672