Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.06;
Скачать: CL | DM;

Вниз

как в sql задать условие сортировки?   Найти похожие ветки 

 
Vasja ©   (2008-06-05 10:35) [0]

пишу запрос:

select key, predm, predm_type, fio
from "plan"
order by predm_type, predm, fio

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


 
Плохиш ©   (2008-06-05 10:42) [1]


> Vasja ©   (05.06.08 10:35)  

А теперь по-медленней и по-русски. Что желаем получить? С примерами результата.


 
ЮЮ ©   (2008-06-05 10:43) [2]

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


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

WHERE
+
UNION ALL


 
Vasja ©   (2008-06-05 11:08) [4]


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


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


 
ЮЮ ©   (2008-06-05 11:11) [5]

> WHERE
> +
> UNION ALL


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


 
ЮЮ ©   (2008-06-05 11:13) [6]

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

Тогда [5] :)


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

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


 
Vlad Oshin ©   (2008-06-05 11:17) [8]


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

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

а как с

> > WHERE
> > +
> > UNION ALL

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

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


 
Vlad Oshin ©   (2008-06-05 11:17) [9]


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

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

а как с

> > WHERE
> > +
> > UNION ALL

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

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


 
Vlad Oshin ©   (2008-06-05 11:17) [10]


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

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

а как с

> > WHERE
> > +
> > UNION ALL

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

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


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


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

select from (select)


 
ЮЮ ©   (2008-06-05 11:28) [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 &laquo;plan&raquo; WHERE predm_type <> "Теория"
 ORDER BY 1, predm, predm_type, fio


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


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

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


 
Vasja ©   (2008-06-05 13:05) [14]

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


 
Vasja ©   (2008-06-05 13:05) [15]

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


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


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

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


 
Vasja ©   (2008-06-05 13:46) [17]

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


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


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


вот же зараза


 
Anatoly Podgoretsky ©   (2008-06-05 14:21) [19]

Vasja ©   (05.06.08 13:05) [15]

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


 
tesseract ©   (2008-06-05 14:51) [20]


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


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


 
Ega23 ©   (2008-06-05 14:55) [21]


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


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


 
MsGuns ©   (2008-06-05 14:59) [22]

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


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


>  не хочет

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



Страницы: 1 вся ветка

Текущий архив: 2008.07.06;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.017 c
2-1212647758
Vasja
2008-06-05 10:35
2008.07.06
как в sql задать условие сортировки?


15-1211717736
KrendelSladkij
2008-05-25 16:15
2008.07.06
Z-order контролов


6-1186510169
Балбес
2007-08-07 22:09
2008.07.06
TServerSocket и несколько подключений


15-1211365772
MustDie
2008-05-21 14:29
2008.07.06
Нужна помощь!!! Как взаимодействовать с ActiveDirectory из Delph


2-1212944213
Alexey
2008-06-08 20:56
2008.07.06
Запись из StringGrid в *.dbf