SELECT total,row_id,rule_id,area_code,start_num,end_num,suffix,
dep_airport,arr_airport,frequency,dcs_equipment,dcs_version,
sub_product,sales_deadline,start_date,end_date,create_user,
create_time,update_user,update_time
FROM (SELECT nvl(MAX(row_num) OVER(), 0) AS total,rownum AS row_id,saleRule.*
FROM (SELECT rownum AS row_num,
t.rule_id as rule_id,
t.area_code,
t.start_num,
t.end_num,
t.dep_airport,
t.arr_airport,
t.frequency,
t.cnd_eqt,
t.cnd_version,
t.sub_product,
t.sales_deadline,
to_char(t.start_date, 'yyyy-MM-dd') AS start_date,
to_char(t.end_date, 'yyyy-MM-dd') AS end_date,
t.create_user as create_user,
to_char(t.create_time, 'yyyy-MM-dd HH24:mi:ss') AS create_time,
t.update_user as update_user,
to_char(t.update_time, 'yyyy-MM-dd HH24:mi:ss') AS update_time
from my_table t
where t.airline = '航司二字码'
and t.area_code = '区域代码'
and t.suffix = '航班后缀'
and t.dep_airport = '出发机场'
and t.arr_airport = '达到机场'
and t.cnd_eqt = '机型'
and (instr(t.cnd_version, '机型版本', 1, 1) > 0)
and t.sub_product = '产品等级'
and ('起始航班号' <= t.end_num and '截止航班号' >= t.start_num)
and ('生效日期' <= to_char(t.end_date, 'yyyy-MM-dd'))
and ('截止日期' >= to_char(t.start_date, 'yyyy-MM-dd'))
and (regexp_substr(t.frequency, '[班期]') > 0)
union
select null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null from dual
order by rule_id
) saleRule )
where row_id between 起始编号 and 结束编号
or row_id is null;