Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Переместить строку в конец / 5 сообщений из 5, страница 1 из 1
10.06.2020, 17:15
    #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
10.06.2020, 17:32
    #39967966
qlost
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить строку в конец
Эх, есть ложь, наглая ложь, а есть, студент, статистика.
подсказка:
order by case f when 'Питер' then 1 else 0 end
...
Рейтинг: 0 / 0
10.06.2020, 17:42
    #39967975
007alex3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить строку в конец
qlost, спасибо большое! Даже не знал об этом способе.
...
Рейтинг: 0 / 0
10.06.2020, 17:42
    #39967976
SY
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
10.06.2020, 17:46
    #39967982
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместить строку в конец
qlost
Эх, есть ложь, наглая ложь, а есть, студент, статистика.
подсказка:
order by case f when 'Питер' then 1 else 0 end


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

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


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