Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Внутри order by о еще order by / 25 сообщений из 26, страница 1 из 2
14.11.2017, 10:08
    #39552678
Goofy122
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
Помогите пожалуйста , нужно изменить сортировку в 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
14.11.2017, 10:20
    #39552697
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
14.11.2017, 10:24
    #39552707
Goofy122
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
Elic http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM

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

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

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

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

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

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

.....
stax
...
Рейтинг: 0 / 0
14.11.2017, 10:51
    #39552728
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
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
14.11.2017, 10:55
    #39552736
fortnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
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
14.11.2017, 11:09
    #39552749
Goofy122
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
спасибо большое
...
Рейтинг: 0 / 0
14.11.2017, 11:37
    #39552774
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
Goofy122,

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

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

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

> 2) Представь себе, пишешь ты case, дописал все явные случаи, далее пишешь else с пробелом и думаешь, какое значение ставить для необработанных случаев. Приходишь к выводу, что нужен null и тут дилемма - либо нажать 5 раз backspase, либо null из 4 символов.
Ctrl+Y
...
Рейтинг: 0 / 0
15.11.2017, 14:00
    #39553505
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
Гхостик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
15.11.2017, 14:09
    #39553524
Гхостик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
StaxпривычкаНу хз, у меня как-то в голове четко отделены case как expression и как statement.
...
Рейтинг: 0 / 0
15.11.2017, 14:24
    #39553545
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
Staxпривычка IF-THEN-ELSIF ?
...
Рейтинг: 0 / 0
15.11.2017, 14:54
    #39553585
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внутри order by о еще order by
123ййStaxпривычка IF-THEN-ELSIF ?
раньше так и было

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

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

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

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

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

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


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