Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как в sql задать условие сортировки?


Страницы:   1 2

Vasja ©   (2008-06-05 10:35:00) 

пишу запрос:

selectkey, predm, predm_type, fio
from"plan"
order bypredm_type, predm, fio

есть ли возможность сделать условие сортировки? т.е. если поле
predm_type равно "Теория", то сортировку выполнять так:
order bypredm_type, predm, fio
иначе:
order bypredm, predm_type, fio


Правильный_Вася   (2008-06-05 15:27:00) [1]


>  не хочет

и че говорит?
может, плохо приказываешь?


MsGuns   (2008-06-05 14:59:00) [2]

Если сортировка нужна на клиенте, то запрос не трогать, а менять св-во TADODataSet.Sort


Ega23   (2008-06-05 14:55:00) [3]


> кому, cxGrid'у сказать? Этот компонент не хочет из-за UNION
> делать POST.


Внутренний голос мне подсказывает, что cxGrid и так и так Post делать не умеет.


tesseract   (2008-06-05 14:51:00) [4]


> вот же зараза


Наврено чует подставу.


Anatoly Podgoretsky   (2008-06-05 14:21:00) [5]

Vasja ©   (05.06.08 13:05) [15]

Чукча не читатель


Игорь Шевченко   (2008-06-05 14:16:00) [6]


> Этот компонент не хочет из-за UNION делать POST.


вот же зараза


Vasja   (2008-06-05 13:46:00) [7]

кому, cxGrid'у сказать? Этот компонент не хочет из-за UNION делать POST.


Плохиш   (2008-06-05 13:40:00) [8]


> Vasja ©   (05.06.08 13:05) [14]
> а можно это как-нибудь сделать без UNION ?

Делай, если кто выступать начнёт, говори, что я разрешил.


Vasja   (2008-06-05 13:05:00) [9]

а можно это как-нибудь сделать без UNION ?


Vasja   (2008-06-05 13:05:00) [10]

а можно это как-нибудь сделать без UNION ?


Anatoly Podgoretsky   (2008-06-05 11:33:00) [11]


> да еще Order по разным столбцам

Да нет у него сортировки по разным словам, у него слов не хватает.


ЮЮ   (2008-06-05 11:28:00) [12]

> спс, только не понятно, что значит then 0 else 1


представь себе столбец, в котором стоят значения, определенные в CASE (т.е. в нашем случае для записей с predm_type = 'Теория' в этом поле будет стоять 0, для записей с другими значениями будет стоять 1) и по этоиу полю осуществляется сортировка.


> WHERE
> +
> UNION ALL


Аналогично, как раз
 SELECT 0 OrdField, * from «plan» WHERE predm_type = 'Теория'
 UNION
 SELECT 1 OrdField, * from «plan» WHERE predm_type 'Теория'
 ORDER BY 1, predm, predm_type, fio


Правильный_Вася   (2008-06-05 11:21:00) [13]


> Vlad Oshin ©   (05.06.08 11:17) [10]

select from (select)


Vlad Oshin   (2008-06-05 11:17:00) [14]


>  ORDER BY
>    CASE WHEN predm_type = 'Теория' THEN 0 ELSE 1 END,

!!, ..не знал..

а как с

> > WHERE
> > +
> > UNION ALL

да еще Order по разным столбцам

этого добиться?


Vlad Oshin   (2008-06-05 11:17:00) [15]


>  ORDER BY
>    CASE WHEN predm_type = 'Теория' THEN 0 ELSE 1 END,

!!, ..не знал..

а как с

> > WHERE
> > +
> > UNION ALL

да еще Order по разным столбцам

этого добиться?


Vlad Oshin   (2008-06-05 11:17:00) [16]


>  ORDER BY
>    CASE WHEN predm_type = 'Теория' THEN 0 ELSE 1 END,

!!, ..не знал..

а как с

> > WHERE
> > +
> > UNION ALL

да еще Order по разным столбцам

этого добиться?


Vasja   (2008-06-05 11:17:00) [17]

спс, только не понятно, что значит then 0 else 1


ЮЮ   (2008-06-05 11:13:00) [18]

> Да, именно  так, СУБД MS SQL server

Тогда [5] :)


ЮЮ   (2008-06-05 11:11:00) [19]

> WHERE
> +
> UNION ALL


В «развитых» СУБД можно и без этого
 ORDER BY
   CASE WHEN predm_type = 'Теория' THEN 0 ELSE 1 END, predm, predm_type, fio


Vasja   (2008-06-05 11:08:00) [20]


> Т.е. чтобы стачала столяли строки у которых predm_type равно
> «Теория», отсортированные по predm, fio
> а затем строки с другими predm_type, отсортированными по
> predm, predm_type, fio?
> Или как?
> И СУБД какая?


Да, именно  так, СУБД MS SQL server


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо