我正在两个表上进行连接。一个是用户表,另一个是高级用户列表。我需要让高级会员首先出现在我的查询中。然而,仅仅因为他们位于高级用户表中并不意味着他们仍然是高级会员 - 还有一个 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 CASE
WHEN PremiumUsers.IsActive = 1 THEN 1
WHEN PremiumUsers.UserId IS NULL THEN 2
ELSE 3
END
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)