Я пытаюсь добиться следующего:Можете ли вы добавить инструкцию if в ORDER BY?
У меня есть один ORDER BY заявление, которое может меняться в зависимости от значения, хранящегося в столбце А.
Например:
если тип является членом, сортировать по фамилии участника , если Тип является Группой, сортировать по названию группы
оба в порядке возрастания.
Моя догадка для итогового заявления будет:
SELECT *
FROM table
WHERE STATUS = 'Active'
ORDER BY ((LNAME if TYPE = 'Member') OR (GROUPNAME if TYPE = 'Group')) ASC
Я знаю, что это неправильно, но не может найти информацию в другом месте. Есть идеи?
Возможно, ваш запрос вернет оба типа? И если бы вы не сказали, что есть два разных запроса по одному для каждого типа, тогда его легко сделать заказ по условию для каждого. – Iznogood
@iznogood - мы делаем это в том случае, если тип или вид известны раньше времени (подумайте о сортировке по букве имени), но это, похоже, не работает в данном конкретном случае. Например: \t \t \t \t \t \t \t \t $ запрос = «SELECT * FROM таблицы WHERE STATUS = 'Активный' AND ((LNAME LIKE 'A%' AND PARTY = 'член') OR (GROUPNAME LIKE«A% 'AND PARTY =' Group ')) ORDER BY KDATE ASC "; работает \t \t \t \t \t \t \t \t} – JM4
@ JM4: Вы измените 'столбец KDATE' к более соответствующей колонке типа еще (Такие, как либо' 'date' или DATETIME')? – ircmaxell