У меня, Oracle, у меня есть таблица со следующими значениями
1 2 4 10
Я всегда хочу, чтобы 2 отображал наибольшее значение после всех других значений в порядке DESCending, как показано ниже:
2 10 4 1
Вы можете order by значение, которое вы строите с помощью case; например:
order by
case
with tab(col) as ( select 1 from dual union all select 2 from dual union all select 4 from dual union all select 10 from dual ) select col from tab order by case when col = 2 then 1 else 2 end asc, col desc
дает:
COL ---------- 2 10 4 1
попробуйте как показано ниже, если столбец не нулевой
with tab(col) as ( select 1 from dual union all select 2 from dual union all select 4 from dual union all select 10 from dual ) select col from tab ORDER BY NULLIF(col, 2) desc NULLS FIRST
выход
COL 2 10 4 1
демонстрационная ссылка