我正在对两个表进行联接。一个是用户表,另一个是高级用户列表。我需要让高级会员首先出现在我的查询中。但是,仅因为它们位于高级用户表中并不意味着它们仍然是高级成员- 还有一个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)
ORDER BY COALESCE(PremiumUsers.IsActive, 0) DESC
这会将NULL与非活动分组。