Эй, ребята, кто-нибудь может объяснить мне разницу между NVL () и ИЛИ в следующем запросе:
Select
count(*)
from SHIPMENTSTATUS
WHERE insert_date between trunc(sysdate) -2 and trunc(sysdate) -1 or update_date BETWEEN trunc(sysdate) -2 and trunc(sysdate) -1
Количество строк: 44937
и
Select
count(*)
from SHIPMENTSTATUS
where NVL(UPDATE_DATE, INSERT_DATE) between trunc(sysdate) -2 and trunc(sysdate) -1
Количество строк: 44782
Почему мы имеем эту разницу: 155 строк? Я построил несколько запросов на основе nvl и заметил эту проблему и собираюсь переключиться на OR
, но я действительно хочу знать, почему это такая разница. Спасибо за объяснение