Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / В ORDER BY при употреблении CASE не позволяет DESC ! / 5 сообщений из 5, страница 1 из 1
18.02.2002, 08:27
    #32023240
Aleksandr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В ORDER BY при употреблении CASE не позволяет DESC !
Уважаемые коллеги! У меня в запросе есть условие на сортировку:

SELECT T.CarTypeID, CarTypeRus, Count(*) AS TCount FROM STrucks T
... -- тута всякие джойны и условия
GROUP BY T.CarTypeID,CarTypeRus
ORDER BY CASE WHEN COUNT(*)>2 THEN CarTypeRus
ELSE COUNT(*) DESC
END
То есть в том случае, если группа имеет больше двух, то по названию, а если меньше - по количеству по убыванию.
Но вот аналайзер ругается на DESC! Если его убрать, то все проходит нормально... Как тут истчо можно заставить его сортировать с таким условием?
...
Рейтинг: 0 / 0
18.02.2002, 09:46
    #32023254
MadDog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В ORDER BY при употреблении CASE не позволяет DESC !
Позволяет:
select au_lname, count(*)
from authors
group by au_lname
order by (case when au_lname < 'N' then count(*) else ascii(au_lname) end) desc

Проверьте синтаксис case.
...
Рейтинг: 0 / 0
18.02.2002, 11:43
    #32023265
Aleksandr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В ORDER BY при употреблении CASE не позволяет DESC !
Лана, зайдем с другого конца... Данные из сего запроса должны сортироваться по алфавиту, но в том случае, если их количество меньше двух - идти в конце запроса, то есть возвращать примерно такие результаты:

Контейнеры (4):
конт. Россия СПб 1000
конт. Россия Москва 500
конт. Россия СПб 1500
конт. Россия Омск 500
Рефрижераторы (5):
реф. Россия СПб 100
реф. Россия СПб 100
реф. Россия СПб 100
реф. Россия СПб 100
реф. Россия СПб 100
Тентованные (3)
тент. Россия СПб 100
тент. Россия СПб 300
тент. Россия СПб 200
Прочие виды:
авт. Россия Москва
дор. Россия Москва
дор. Россия Москва
нест. Россия СПБ
...
Рейтинг: 0 / 0
18.02.2002, 12:19
    #32023270
Владимир Смирнов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В ORDER BY при употреблении CASE не позволяет DESC !
Похоже, Вам нужно сделать сортировку по двум значениям.
Первое - это COUNT(*) для группы. Если >2, то значение 1, иначе 2.
Второе - название.
Примерно так:
ORDER BY (CASE WHEN COUNT(*)>2 THEN 1 ELSE 2 END), CarTypeRus
...
Рейтинг: 0 / 0
18.02.2002, 12:32
    #32023271
Aleksandr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В ORDER BY при употреблении CASE не позволяет DESC !
Спасиб, то, что нужно )
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / В ORDER BY при употреблении CASE не позволяет DESC ! / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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