powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Внутри order by о еще order by
25 сообщений из 26, страница 1 из 2
Внутри order by о еще order by
    #39552678
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста , нужно изменить сортировку в order by в зависимости он передаваемой информации , возможно ли внутри order by прописать еще один order by типо такого

Код: plsql
1.
2.
select * from table
order by case when column like 'a%' then (select column from table  order by  column ) end;
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39552697
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39552707
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM

А по сути ? Или просто не знаете ответа на вопрос ? Я уверен что вы меня поняли
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39552712
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122Elic http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM

А по сути ? Или просто не знаете ответа на вопрос ? Я уверен что вы меня поняли
ЦарьДа как же тебя понять коль ты не чего не говоришь.
[youtube=
YouTube Video
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39552715
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin,

Есть процедура , нужно сортировать order by в зависимости от передаваемой информации , например или по имени клиента или по его фамилии или по отчеству.

Вопрос возможно ли если да , то помогите если не поняли объясню еще раз .

Что конкретно не понятного ?
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39552719
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122Я уверен что вы меня поняли
Разумеется, каждый по своему и все неправильно.
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39552723
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122,

order by
case when :p=1 then ename
when :p=2 then job
else null
end

.....
stax
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39552728
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122Vadim Lejnin,

Есть процедура , нужно сортировать order by в зависимости от передаваемой информации , например или по имени клиента или по его фамилии или по отчеству.

Вопрос возможно ли если да , то помогите если не поняли объясню еще раз .

Что конкретно не понятного ?
Дайте перечитать Ваш первый пост коллеге
он поймет что Вы написали?

Как Вы будете передавать информацию?
Откуда, В каком виде

Правилом хорошего тона является предоставить testcase
например в виде

Код: plsql
1.
2.
3.
4.
5.
6.
7.
with t(param,name,family) as (
select 1,'Вася','Пупкин' from dual union all
select 1,'Аня','Вертихвостова' from dual union all
select 2,'Васисуалий','Либерман' from dual union all
select 2,'Борис','Каталкин' from dual
)
select name,family from t order by ...



что является переключателем сортировки?


[telepat]
предположим переключателем является param
1 - сортировка по имени
2 - сортировка по фамилии

То есть идет выборка
where param=1 сортировать по имени
если param=2 то по фамилии
это так?
[/telepat]
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39552736
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
with tab as
(
select 'ALEX' name, 'Савинов' surname,'Иванович' second_name from dual
union
select 'Валя' name, 'Краснов' surname,null second_name from dual
union
select 'Коля' name, null surname, null second_name from dual
union
select 'Петя' name, 'Перов' surname,'Николаевич' second_name from dual
union
select null name, null surname, 'Петрович' second_name from dual)

select * from tab
order by case when surname like '%' then '1 ' || surname
when name like '%' then '2 ' || name
when second_name like '%' then '3 ' || second_name end;


NAME SURNAME SECOND_NAM
---- ------- ----------
Валя Краснов
Петя Перов Николаевич
ALEX Савинов Иванович
Коля
Петрович
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39552749
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо большое
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39552774
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122,

Даже стало интересно, какой правильный ответ :)
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553437
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax else null
end
Та же бесполезная дрянь что и when others then raise. Зачем дублировать поведение по умолчанию?
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553475
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гхостик,

Попробую привести аргументы "за":
1) Чтобы не было недосказанности.
2) Представь себе, пишешь ты case, дописал все явные случаи, далее пишешь else с пробелом и думаешь, какое значение ставить для необработанных случаев. Приходишь к выводу, что нужен null и тут дилемма - либо нажать 5 раз backspase, либо null из 4 символов.
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553483
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKadПопробую привести аргументы "за":Не вижу оговорки "иногда", "в сложных случаях" и т.п.
В тривиальных случаях это приведёт к "пересказанности".
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553497
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГхостикStax else null
end
Та же бесполезная дрянь что и when others then raise. Зачем дублировать поведение по умолчанию?
else null - просто бесполезно
when others then raise - вредно, ибо пропадает инфа о стеке вызова
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553502
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 AmKad:

> 1) Чтобы не было недосказанности.
Которая появляется только если поведение по умолчанию тебе неизвестно.

> 2) Представь себе, пишешь ты case, дописал все явные случаи, далее пишешь else с пробелом и думаешь, какое значение ставить для необработанных случаев. Приходишь к выводу, что нужен null и тут дилемма - либо нажать 5 раз backspase, либо null из 4 символов.
Ctrl+Y
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553505
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГхостикStax else null
end
Та же бесполезная дрянь что и when others then raise. Зачем дублировать поведение по умолчанию?
привычка
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SQL> ed
Wrote file afiedt.buf

  1  declare
  2   v int :=0;
  3  begin
  4   case
  5    when v=1 then v:=212;
  6    when v=2 then v:=123;
  7  --  else null;
  8   end case;
  9   dbms_output.put_line(v);
 10* end;
SQL> /
declare
*
ERROR at line 1:
ORA-06592: CASE not found while executing CASE statement
ORA-06512: at line 4



....
stax
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553524
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StaxпривычкаНу хз, у меня как-то в голове четко отделены case как expression и как statement.
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553545
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxпривычка IF-THEN-ELSIF ?
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553585
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййStaxпривычка IF-THEN-ELSIF ?
раньше так и было

стараюсь но case перейти

.....
stax
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553589
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГхостикStaxпривычкаНу хз, у меня как-то в голове четко отделены case как expression и как statement.

у меня в голове скорее бардак (каша) чем четко

....
stax
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553636
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicAmKadПопробую привести аргументы "за":Не вижу оговорки "иногда", "в сложных случаях" и т.п.
В тривиальных случаях это приведёт к "пересказанности".
Как минимум абсурдность второго довода показывает смысл всего поста.
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553645
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKadКак минимум абсурдность второго довода показывает смысл всего поста.Ну тогда всегда пиши else, а также избавляйся недосказанности указанием всех аргументов всех функций (вроде regexp_replace).
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553653
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Я имел в виду аргумент своего поста.
...
Рейтинг: 0 / 0
Внутри order by о еще order by
    #39553767
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKadпишешь else с пробелом ... либо нажать 5 раз backspase
6 раз

ElicНе вижу оговорки "иногда",
А сарказм, сарказм-то видно?
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Внутри order by о еще order by
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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