Один из подходов состоит в том, чтобы добавить вычисляемый столбец к вашему набору запросов объединения, затем упорядочить по этому столбцу:
WITH table1 AS (
SELECT 1 ID, 'txt1' value, 1 AS position FROM dual
UNION ALL
SELECT 2, 'txt2', 2 FROM dual
UNION ALL
SELECT 7, 'txt7', 3 FROM dual
UNION ALL
SELECT 5, 'txt5', 4 FROM dual
UNION ALL
SELECT 3, 'txt3', 5 FROM dual
)
SELECT *
FROM table1
ORDER BY pos DESC;
Обратите внимание, что в целом нет никакого внутреннего порядка в таблице SQL. На самом деле, даже текущий порядок, который вы наблюдаете, не обязательно гарантируется Oracle. Если вы ожидаете определенный порядок в наборе результатов, вам нужно наложить его с помощью предложения ORDER BY
.