У меня есть дата начала и дата окончания, которые я хотел бы сравнить:
пример:
1. start_date: 2017-12-13 00:00:00 End_date: 2017-12-13 09:44:00
2. start_date: 2017-12-13 09:44:00 End_date: 2017-12-13 16:19:00
3. start_Date: 2017-12-13 16:19:00 End_date: 2017-12-18 00:00:00
Я хотел бы сравнить строку start_date 2 со строкой end_date 1. Если они не совпадают, сделайте что-нибудь. Приведенная ниже функция лида не дает мне того, что я хочу. Пожалуйста, присоединяйтесь и помогите. Как только мой запрос заработает, я помещаю его в цикл и просматриваю всю таблицу. Благодарность
SELECT start_Date, end_date,
LEAD (start_Date, 1) OVER (ORDER BY start_Date) AS next_start_DAte
from my_table
where start_date >= '2017-12-01'
AND END_DATE < '2018-08-01'
AND FILE_ID IS NULL
ORDER BY UNIT_ID, START_DATE;


Вы можете просто использовать not exists для поиска строк, которые не совпадают в точности со «следующей» строкой:
select t.*
from my_table t
where not exists (select 1
from my_table t2
where t2.start_date = t.end_date
);
Это всегда будет возвращать последнюю строку таблицы, но эта строка соответствует описанным вами условиям.
Вы можете использовать этот следующий запрос,
SELECT START_DATE ,END_DATE,
--If they dont match do something.
case when trunc(next_date) <> trunc(end_date) then 1 else 2 end dosomething
FROM (
SELECT leadtest.*, lead(start_date, 1) over (order by start_date) next_date FROM leadtest)
;
Надеюсь это поможет!
Ну какой делать ты хочешь? Желаемые результаты действительно помогут.