У меня есть следующий код:Как использовать NVL в пункте, где
SELECT cr_ts, msg_id, info
FROM messaging_log
WHERE UPPER(INFO) LIKE '%' || TRIM(UPPER(P_INFO)) || '%'
AND cr_ts >= NVL(P_DATE, SYSDATE-10)
AND msg_id = NVL(P_ID, msg_id)
ORDER BY cr_ts desc;
где P_INFO, P_DATE и P_ID являются параметрами. В нормальном случае каждый параметр равен NULL. Но тогда предложение where AND msg_id = NVL(P_ID, msg_ID)
не возвращает строки, в которых msg_id является NULL. Что я упустил?
Как вернуть все записи, когда P_ID и msg_id являются NULL?
Возможно, у вас есть значения NULL в таблице? – Aleksej