Member 9205334 Ответов: 1

Sql server возвращает имя месяца, отсортированное по номеру месяца


У меня есть столбец дат, я хочу вернуть список уникальных имен месяцев, которые отсортированы по номеру месяца, я хочу сделать это как в SQL server с представлением или хранимой процедурой

Выберите отдельный формат([SobrietyDate], 'MMMM') в качестве [SobrietyMonth]
от членов
Где [SobrietyDate] не равно нулю

ВОЗВРАЩАЕТСЯ
Август
Июль
Июнь
Май
Сентябрь

Как я могу отсортировать результаты по маю, июню, июлю, августу, сентябрю, например, по номеру месяца?

Я хочу, чтобы заполнить выпадающий список с результатами

Что я уже пробовал:

Я попробовал это сделать как коррелированный подзапрос, но не смог его отсортировать. Я предпочитаю не создавать временную таблицу, но начинаю подозревать, что должен это сделать

1 Ответов

Рейтинг:
0

jgakenhe

Ты уже близко. Для сортировки по номеру месяца вам нужно будет сделать что-то вроде этого:

ORDER BY DATEPART(m, SobrietyDate)


Это может привести к ошибке "порядок по элементам должен появиться в списке выбора, если указан параметр SELECT DISTINCT." Поэтому, чтобы исправить это, добавьте столбец для номера месяца.
, DATEPART(m, SobrietyDate)


Таким образом, ваш окончательный код должен выглядеть следующим образом:
SELECT DISTINCT FORMAT(SobrietyDate, 'MMMM') AS MonthName, DATEPART(m, SobrietyDate) AS MonthNumber
FROM Members
ORDER BY DATEPART(m, SobrietyDate)


Ваш номер месяца может быть индексом/ключом, а имя месяца-текстом для вашего combobox; если вы хотите.