Почему мое выражение case возвращает несколько строк? Я думал, что выражение case фиксирует первое истинное условие, а затем останавливается.
У меня есть ниже, и он возвращает две строки. Почему это и что я могу добавить в мое выражение case, чтобы остановить, когда выполняется первое истинное условие?
with
sample_data1(ID, START_DATE,ASSIGNMENT_DATE ) as (
select 1, to_date('11/07/2018', 'mm/dd/yyyy'),to_date('10/01/2018', 'mm/dd/yyyy') from dual UNION ALL
select 1, to_date('11/07/2018', 'mm/dd/yyyy'),to_date('11/08/2018', 'mm/dd/yyyy') from dual
)
SELECT
ID,
START_dATE,
CASE
WHEN ASSIGNMENT_DATE < START_DATE THEN START_DATE
WHEN ASSIGNMENT_DATE > START_DATE THEN ASSIGNMENT_DATE
END FIRST_DATE
FROM sample_data1
Я бы ожидал вывод таблицы ниже:
ID START_DATE FIRST_DATE ASSIGNMENT_DATE
1 11/7/18 11/7/18 10/1/18
1 11/7/18 11/7/18 11/8/18