【求助】求这条SQL语句怎么写
表里面有三个字段,分别是 name (varchar2) ,startTime(Date),endTime(Date),分别表示的是“组织者名称”,“开始时间”,“结束时间”。表里面有很多数据。
现在传入这3个参数,要判断新传入的“开始时间”和“结束时间”这个时间段跟以前的时间段有没有时间重叠的地方,如果有,把对应的“组织者”找出来,跟新传入的组织者对比,判断是否是同一个人。
实际上就是判断在同一时间内组织者是否有冲突的问题。
可以是SQL语句或者存储过程,不要程序包。
大虾们,帮帮忙``在线等
------解决方案--------------------
DECLARE
   lv_name  VARCHAR2(80) := NAME; --传入的组织者名称
   sTime    DATE := startTime; --传入的开始日期
   eTime    DATE := endTime; --传入的结束日期
   lv_name2 VARCHAR2(80); --可能存在交叉的组织者名称
BEGIN
   BEGIN
       SELECT NAME
       INTO lv_name2
       FROM tb_name a
       WHERE a.startTime <= eTime AND a.endTime >= sTime;  
       IF lv_name2 = lv_name THEN
           dbms_output.put('组织者名称:' || lv_name2);
       END IF;
   EXCEPTION
       WHEN no_data_found THEN
           dbms_output.put('不存在有交叉的组织者名称');
   END IF;
END;