如何在SQL中按max(a,b)排序?

Mis*_*hko 2 mysql sql sql-order-by sql-function

请考虑下表:

 id    a    b
--------------
 1     5    1
 2     2    3
 3     4    2
 4     3    6
 5     0    1
 6     2    2
Run Code Online (Sandbox Code Playgroud)

我想按max(a,b)降序排序,结果将是:

 id    a    b
--------------
 4     3    6
 1     5    1
 3     4    2
 2     2    3
 6     2    2
 5     0    1
Run Code Online (Sandbox Code Playgroud)

执行此类排序的SQL查询是什么?

Vin*_*ard 9

使用GREATEST:

SELECT *
FROM table
ORDER BY GREATEST(a, b) DESC
Run Code Online (Sandbox Code Playgroud)

  • 请注意,两个值都不能为空.示例:select maximum(null,3)返回null.在这种情况下,您将不得不使用合并.选择最大值(coalesce(null,0),coalesce(null,0))这将返回0. (2认同)