Oracle11g
列の並べ替え順序に関係なく、rownumを順番に(最小から最大に)表示したいと思います。これは、このクエリに示すように、副選択を介してクエリを送信することで実現できます。
質問:rownumの並べ替えを「orderby」句から独立させる他の方法はありますか?
with alphabet as
( select 'A' as letters from dual union all
select 'B' as letters from dual union all
select 'C' as letters from dual)
select rownum, letters from
(select letters from alphabet
-- order by letters -- I can change the sort order here w/o changing rownum sort order.
order by letters desc)
副選択を行わない場合、列は次のようにソートされるため、rownumはソートされます。
with alphabet as
( select 'A' as letters from dual union all
select 'B' as letters from dual union all
select 'C' as letters from dual)
select rownum, letters from alphabet
order by letters desc -- sorting here alters the rownum sort.