Установка своего порядка выполнения sql запроса
Всем привет возможно ли как-то установить свой порядок выполнения sql запроса. У меня есть огромный select, выложу его небольшую часть
select max(p.fullname) fullname,
from (select c1.*,
row_number() over(partition by c1.id_r order by rownum) n,
row_number() over(partition by c1.srv_code, c1.srv, c1.od_exec_id order by rownum) ns
from ( select r.id id_r
from n_req_heads h,
n_requests r,
n_requests_out ro,
where h.id = r.req_head_id
and r.id = ro.request_id(+)
and ro.deposit_id = d.id(+)
and d.registry_id = mr.id(+)
order by med_chrt,
med_chrt_id,
lpad(srv_code, 15, '0'),
srv,
od_exec_id,
seq,
id_r,
name,
name_out) c1
where 1 = 1
) c2,
s_str_orgs p,
t_fios f,
a.od_drugs od
where c2.n = 1
and c2.s_str_org_s_str_org_id = p.s_str_org_id
and c2.t_person_id = f.t_person_id
and f.status = 0
and od.od_order_id = c2.orders_id
and od.status = 0
and exists (select 1
from n_medic_reg_pharm mrp
where mrp.n_medic_reg_id = c2.code_out
and mrp.rls_ph_id in
(select rc.id
from rls_clspharmagroup rc
where rc.id = '245'))
group by c2.t_med_chart_id,
c2.code,
initcap(f.family || ' ' || f.name || ' ' ||
f.patronimic),
c2.s_str_org_s_str_org_id,
c2.p_name
Девелопер сначала выполняет where по подзапросу c2 из-за этого у меня не корректно отрабатывает условие
c2.n = 1
Можно ли как-то сделать так, чтобы сначала выполнялся селект с2, а потом уже по нему производились все манипуляции
Источник: Stack Overflow на русском