Как перевернуть результирующие строки выбранной записи в Oracle? - PullRequest
0 голосов
/ 27 апреля 2018

Я могу выбрать список строк в таблице. но я хочу показать их, перевернув с ног на голову. Explaination:

with table1 as
(
    select 1 ID, 'txt1' value from dual
    union all
    select 2, 'txt2' from dual
    union all
     select 7, 'txt7' from dual
        union all
     select 5, 'txt5' from dual
        union all
     select 3, 'txt3' from dual
)
select * from table1;

в приведенном выше запросе я могу получить следующий результат

ID     |    VALUE
------------------
1         txt1
2         txt2
7         txt7
5         txt5
3         txt3

но я хочу показать их следующим образом

ID     |    VALUE
------------------
3         txt3
5         txt5
7         txt7
2         txt2
1         txt1

Как это сделать?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Как это?

with table1 as
(
    select 1 ID, 'txt1' value from dual
    union all
    select 2, 'txt2' from dual
    union all
     select 7, 'txt7' from dual
        union all
     select 5, 'txt5' from dual
        union all
     select 3, 'txt3' from dual
)
select * from table1 order by rownum desc;

На самом деле это не работает для этого частного примера. но это работает для нормальной таблицы.

0 голосов
/ 27 апреля 2018

Один из подходов состоит в том, чтобы добавить вычисляемый столбец к вашему набору запросов объединения, затем упорядочить по этому столбцу:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...