Mysql

具有多個訂單標準的逐案排序

  • November 5, 2019

我想知道如何將多個訂單列與案例一起使用。例如案例 1,按 FirstName、GivenName 排序 案例 2 按 GivenName、FirstName 排序。

我試過這個,但看起來冒號會引入錯誤

當 1 then FirstName, GivenName else GivenName, FirstName end 時按大小寫排序

Case 應該返回一個值,而不是元組。此外,您應該將 1 與某物進行比較。如果你想要條件排序,你可以用兩個 case 語句來做到這一點:

ORDER BY CASE WHEN x = 1 THEN FirstName ELSE GivenName END
      , CASE WHEN x = 1 THEN GivenName ELSE FirstName END

對於多個條件 ORDER BY 語句:

ORDER BY CASE category WHEN 0 THEN concat(cName,', ',bName) END DESC,
        CASE category WHEN 1 THEN concat(aName,', ',bName,', ',cName) END DESC,
        CASE category WHEN 2 THEN concat(bName,', ',aName,', ',cName) END DESC";

引用自:https://dba.stackexchange.com/questions/120088