Oracle11gКак сохранить порядок сортировки rownum при изменении порядка сортировки столбцов?
Я хочу ROWNUM появляться в порядке (от наименьшего к наибольшему), независимо от порядка сортировки столбцов. Я могу добиться этого, отправив запрос через подвыбор, как показано в этом Запрос.
Вопрос: Есть ли другой способ сохранить 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
(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.
Ницца ... Если у меня есть более сложный запрос, который «сортируется по A, B, C, D, E» и хочет ударить строку row_number() поверх этого, тогда мне нужно убедиться, что раздел row_number() отражает сортировку запроса. .например 'row_number() over (порядок по A, B, C, D, E) ... правильно? – zundarz
@zundarz - Правильно. –