Cheer lead:LEAD函数-Oracle

我有一个开始日期和一个 end_Date,我想比较:

例子:

  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 行。如果他们不匹配做某事。的 lead 函数没有给我我想要的。请插话和帮助。一旦我的查询工作,我会把它一个循环,并通过整个表。谢谢

    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;
1

您可以使用not exists来查找与“下一个”行不完全匹配的行:

select t.*
from my_table t
where not exists (select 1
                  from my_table t2
                  where t2.start_date = t.end_date
                 );

这将始终返回表的最后一行,但该行符合您描述的条件。

0

您可以使用以下查询,

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)
;

希望这有帮助!

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(553)
电脑文件数据恢复找回:平面文件数据库示例(flat file database example)
上一篇
Date add:MySQL:DATE_ADD
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(13条)