具有多个订单条件的逐案排序

otr*_*mas 3 mysql order-by case

我想知道如何在案例中使用多个订单列。例如 case 1,order by FirstName, GivenName case 2 order by GivenName, FirstName。

我试过这个,但看起来冒号引入了一个错误

按大小写排序,当 1 然后 FirstName, GivenName else GivenName, FirstName end

Len*_*art 5

Case 应该返回一个值,而不是一个元组。此外,您应该将 1 与某物进行比较。如果你想要条件排序,你可以用两个 case 语句来做到这一点:

ORDER BY CASE WHEN x = 1 THEN FirstName ELSE GivenName END
       , CASE WHEN x = 1 THEN GivenName ELSE FirstName END
Run Code Online (Sandbox Code Playgroud)