我有一个帐户数据库,每个帐户都有某种等级(会员,隐藏将在这里使用)
查询的范围不是问题,因此我将使用我正在尝试实现的英语示例。
SELECT * FROM accounts ... ORDER BY rank (IF rank="Hidden" THEN rank="Member") DESC
这显然不起作用,但基本上如果隐藏了帐户排名,则应将其视为成员排名(因此隐藏起来的原因)。
这可能吗?
答案 0 :(得分:3)
这应该可以使用简单的CASE
;
SELECT *
FROM accounts
ORDER BY CASE WHEN rank='Hidden' THEN 'Member' ELSE rank END DESC
答案 1 :(得分:2)
您可以按顺序使用案例陈述来修改排序:
ORDER BY
CASE
WHEN rank="Hidden" THEN 1
WHEN rank="Member" THEN 1
ELSE 0
END DESC
这允许您根据需要对用户级别进行排名。
请参阅修改后的SQL小提琴 - http://sqlfiddle.com/#!2/dcc71/5/0