Union order by

Alexanderpeshkov
Дата: 02.12.2009 10:08:45
Доброго времени суток.

у меня есть запрос
open cur for select  '_#_','_UserName_','_Text_Info_Message_' from dual
            union all
            select 
                to_char(TA.ID),
                AU.USERNAME,
                TA.TEXTDATA,
            from е1 TA, All_users AU, е2 EA 
            where TA.SYSUSER_ID= AU.USER_ID and TA.ACTOR=EA.ACTOR_ID and TA.ACTOR=6 and  rownum<=UF_GETPROPERTY('srv.RowsPerPage')
            order by 1 desc;
механизм следующий этот курсор формируется и вываливается наверх в РНР. первая строчка запроса это шапка таблицы, она локализуется на уровне РНР. проблема в след как сделать сортировку чтобы эта шапка всегда была первой строчкой ща с же она где то в середине...

помню была вроде функция которая делает строчку всегда первой при сортировке но не помню какая=) вобщем пока только две идеи одна это записать что то вроде 999999999_#_ вторая использовать rank и сделать все это в виде подзапроса....
Вячеслав Любомудров
Дата: 02.12.2009 10:14:44
select aa,bb from (
select aa, bb, 1 from ...
union all
select aa, bb, 2 from ...
order by 3, 1
)
4ton
Дата: 02.12.2009 10:26:09
Alexanderpeshkov,

или так:
with t as
(
select
to_char(TA.ID),
AU.USERNAME,
TA.TEXTDATA,
from е1 TA, All_users AU, е2 EA
where TA.SYSUSER_ID= AU.USER_ID and TA.ACTOR=EA.ACTOR_ID and TA.ACTOR=6 and rownum<=UF_GETPROPERTY('srv.RowsPerPage')
order by 1 desc
)
select '_#_','_UserName_','_Text_Info_Message_' from dual
union all
select * from t
Alexanderpeshkov
Дата: 02.12.2009 11:30:57
спасибо=)