Я пытаюсь выбрать из одной таблицы список товаров, заказанных по цене, году, названию и т. Д. Проблема в том, что я должен сделать нулевые значения при последней сортировке по возрастанию ,0 приходят при сортировке по возрастанию
Мой код:
SELECT * FROM Product P
ORDER BY CASE WHEN @OrderBy='Date ASC' THEN Date END ASC,
CASE WHEN @OrderBy='Price ASC' THEN Price END ASC,
CASE WHEN @OrderBy='Title ASC' THEN Title END ASC,
CASE WHEN @OrderBy='' THEN Match END
Это работает, но не поставить ноль в нижней части списка. Итак, я попытался преобразовать его (см. Следующий код), но он дал мне ошибку Неверный синтаксис рядом с ','.
SELECT * FROM Product P
ORDER BY CASE WHEN @OrderBy='Price ASC' THEN
(case A.Price WHEN 0 THEN 1 ELSE 0 END,A.Price)
END ASC
Я признателен за любую помощь
Я попытался запустить ваш код, но я получаю сообщение об ошибке: _Встроенный синтаксис рядом с ключевым словом «ASC'_» в третьей строке. Зачем? – POIR
Я забыл закрыть третье выражение случая с 'END'. Извини за это; Я не тестировал код, прежде чем предлагать его! –