select 1, 890, 1, b.seq_no
from b, a, t_hotel_basic_message t
where a.room_no = b.room_no and a.region_number = b.section_no and
((b.chn_name = 'a' and b.lasttime = 890 and
(((b.start_time between f_getchargetime() - 1 and f_getchargetime()) and
f_getchargetime() >= sysdate) or
((b.start_time between f_getchargetime() and f_getchargetime() + 1) and
f_getchargetime() < sysdate))) or
(b.chn_name = 'b' and
(((b.start_time between f_getchargetime() - 1 and f_getchargetime()) and
f_getchargetime() >= sysdate) or
((b.start_time between f_getchargetime() and f_getchargetime() + 1) and
f_getchargetime() < sysdate))))
from b, a, t_hotel_basic_message t
where a.room_no = b.room_no and a.region_number = b.section_no and
((b.chn_name = 'a' and b.lasttime = 890 and
(((b.start_time between f_getchargetime() - 1 and f_getchargetime()) and
f_getchargetime() >= sysdate) or
((b.start_time between f_getchargetime() and f_getchargetime() + 1) and
f_getchargetime() < sysdate))) or
(b.chn_name = 'b' and
(((b.start_time between f_getchargetime() - 1 and f_getchargetime()) and
f_getchargetime() >= sysdate) or
((b.start_time between f_getchargetime() and f_getchargetime() + 1) and
f_getchargetime() < sysdate))))
另外楼主可以根据实际情况和execution plan对条件中的字段加index以便加速查询的速度