![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как в sql задать условие сортировки?
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