在我上一个问题之后,我有一个 SQL 查询,如下所示:
SELECT *
WHERE ...
ORDER BY
CASE user_id WHEN 34 THEN 1 ELSE 2 END,
CASE status WHEN 'active' THEN 1 ELSE 2 END
正如您在上面的代码中看到的,有两个 CASE ... WHEN
语句。在这种情况下会发生什么?也就是说,记录将如何排序?那些“加倍”的陈述可能会发生冲突吗?
更新:我想让它按以下顺序返回记录:(1)记录在哪里user_id = 34
和status = 'active'
;(2) 记录在哪里status = 'active'
(无条件user_id
);(3) 所有其他记录。我怎样才能做到这一点?