#sql #oracle
Вопрос:
Мне нужен запрос для выбора данных между двумя датами (p_startdt,p_enddt), который задается пользователем, если входные данные отсутствуют, то по умолчанию в качестве выходных данных будут указаны данные за последний год. Я не могу указать регистр для ввода null или без ввода
where invc_dt between p_startdt and p_enddt
Ответ №1:
Используется NVL
для обработки случая нулевого значения. В следующем примере дата начала будет указана как год назад, если значение p_startdt равно нулю, а значение p_enddt-как текущая дата, если значение p_enddt равно нулю:
WHERE invc_dt
BETWEEN NVL(p_startdt,ADD_MONTHS(SYSDATE,-12)) AND
NVL(p_enddt,SYSDATE)
Примечание: Я предполагаю, что тип данных столбца invc_dt-ДАТА.