powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Переместить строку в конец
5 сообщений из 5, страница 1 из 1
Переместить строку в конец
    #39967956
007alex3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Подскажите, как сделать так, чтобы Санкт-Петербург оказался на последней строке, а всё остальное осталось как есть ?
Москва
Челябинск
Воронеж
Абакан
Санкт-Петербург


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
with daily_temper as (
select   'Москва' temper  from dual
union all
select   'Санкт-Петербург' temper  from dual
union all
select   'Воронеж' temper  from dual
union all
select   'Абакан' temper  from dual
union all
select   'Челябинск' temper  from dual
)


select case when r = 1 then t1
            when r = 3 then t2
            when r = 2 then t1
              end
from(
select dt.temper as t1,dt2.temper as t2
       ,rank()over(order by  dt.temper) as r
from (
select temper
from daily_temper 
where temper  in ('Москва','Санкт-Петербург')
) dt
full join (
select temper
from daily_temper 
where temper not in ('Москва','Санкт-Петербург')
) dt2 on dt.temper = dt2.temper
order by dt2.temper desc
)t
...
Рейтинг: 0 / 0
Переместить строку в конец
    #39967966
qlost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, есть ложь, наглая ложь, а есть, студент, статистика.
подсказка:
order by case f when 'Питер' then 1 else 0 end
...
Рейтинг: 0 / 0
Переместить строку в конец
    #39967975
007alex3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qlost, спасибо большое! Даже не знал об этом способе.
...
Рейтинг: 0 / 0
Переместить строку в конец
    #39967976
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак - в реляционных табицах нет порядка строк. Он задается через ORDER BY. Так-что "а всё остальное осталось как есть" требует дополнительного полям задающего "как есть". Тогда:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
with daily_temper as (
                      select 1 seq,'Москва' temper from dual union all
                      select 2 seq,'Санкт-Петербург' temper from dual union all
                      select 3 seq, 'Воронеж' temper from dual union all
                      select 4 seq,'Абакан' temper from dual union all
                      select 5 seq,'Челябинск' temper from dual
                     )
select  temper
  from  daily_temper
  order by case temper
             when 'Санкт-Петербург' then 1
             else 0
           end,
           seq
/



SY.
...
Рейтинг: 0 / 0
Переместить строку в конец
    #39967982
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlost
Эх, есть ложь, наглая ложь, а есть, студент, статистика.
подсказка:
order by case f when 'Питер' then 1 else 0 end


Студенты, как я вижу, вы оба.

SY.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Переместить строку в конец
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]