我有一张表,有六个时间字段。其中两个字段是开始时间和结束时间,其余四个字段是比较时间字段。现在需要一条SQL,查询出这四个时间字段不在开始时间和结束时间内,并且准确的指导是哪几个字段不在区间内。由于要考虑效率问题,所以不希望在程序中处理,自己尝试了很多方法,都没有实现这样的需求。大虾门给个思路!

解决方案 »

  1.   

    试试这个样子的?
           select id,
           case
             when t1 not between start_time and end_time then '1'
           end case
           || 
           case
             when t2 not between start_time and end_time then ',2'
           end case
           || 
           case
             when t3 not between start_time and end_time then ',3'
           end case
           ||
           case
             when t4 not between start_time and end_time then ',4'
           end case
           as time_not_between
         from tab;
      

  2.   

    非常感谢,通过case when 语句解决了