小编典典

SQL条件排序依据

sql

我正在对两个表进行联接。一个是用户表,另一个是高级用户列表。我需要让高级会员首先出现在我的查询中。但是,仅因为它们位于高级用户表中并不意味着它们仍然是高级成员-
还有一个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)


阅读 200

收藏
2021-04-28

共1个答案

小编典典

ORDER BY COALESCE(PremiumUsers.IsActive, 0) DESC

这会将NULL与非活动分组。

2021-04-28