我不明白如何按照某些条件给出的特定顺序向光标写入行。那些。在任何情况下,查询结果中都必须包含感兴趣的行,但要求它恰好是游标中的最后一行。
无法选择所需的排序,将其放在最后位置的条件由位于该行的其中一个字段中的值确定(在下面的示例中,条件为s.service_synonym = 'AutoCloseOrder'
)。
试过 via UNION
,但它仍然没有将所需的行放在光标的末尾:
create or replace procedure get_service2(p_document_id number, res out sys_refcursor)
is
begin
open res for
select s.service_id, s.service_synonym from document d
join service s on d.service_id = s.service_id
where d.document_id = p_document_id and (s.service_synonym <> 'AutoCloseOrder' or s.service_synonym is null)
union
select s.service_id, s.service_synonym from document d
join service s on d.service_id = s.service_id
where d.document_id = p_document_id and s.service_synonym = 'AutoCloseOrder';
--order by s.service_synonym desc;
end get_service2;