Я делаю объединение двух таблиц. Одна — это таблица пользователей, а другая — список премиум-пользователей. Мне нужно, чтобы премиум-члены отображались первыми в моем запросе. Однако то, что они находятся в таблице премиум-пользователей, не означает, что они все еще являются премиум-участниками — есть поле IsActive, которое также необходимо проверить.
Итак, в основном мне нужно вернуть результаты в следующем порядке:
- Активные премиум-пользователи
- Обычные и неактивные премиум-пользователи
Сейчас у меня это выглядит следующим образом:
SELECT Users.MemberId, PremiumUsers.IsActive FROM Users
LEFT JOIN PremiumUsers ON PremiumUsers.UserId = Users.Id
ORDER BY PremiumUsers.IsActive DESC
Проблема в том, что неактивные премиум-члены помещаются выше не-премиум-членов.
(Я использую для этого MS SQL Server 2005)