Текущий архив: 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 «plan» 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.49 MB
Время: 0.034 c