【问题标题】:Sorting two columns in opposite way以相反的方式对两列进行排序
【发布时间】:2012-06-11 12:16:00
【问题描述】:

以下是我所拥有的

id    |  Total    | Area
  1   |    19     |  A
  2   |    20     |  B
  3   |    19     |  C
  4   |    20     |  A
  5   |    19     |  D

我想要的如下。

id    |  Total    | Area
  4   |    20     |  A
  2   |    20     |  B
  1   |    19     |  A
  3   |    19     |  C
  5   |    19     |  D

我正在尝试

SELECT * FROM myTable
ORDER BY Total, Area DESC

通过使用上面的代码,我可以按降序对 Total 进行排序,但是如何同时对 Area 列进行排序?有什么想法吗?

当我得到答案时,我将结束这个问题

SELECT * FROM myTable
ORDER BY Total DESC, Area ASC

Demo

【问题讨论】:

  • SELECT * FROM myTable ORDER BY Total DESC, Area?
  • @SalmanA :它的工作。我也刚刚得到SELECT * FROM myTable ORDER BY Total DESC, Area ASC的答案
  • @eggyal :在我发表评论后,他回答了。所以我会接受答案...请参阅下面对他的回答的评论..我正在等待,因为 SO 要求我等待一段时间来接受答案...
  • @eggyal:现在它被接受了...... :)
  • @FahimParkar 请不要批准suggested edits like this。如果需要,请参阅此meta post 了解详细信息。

标签: mysql sql sorting sql-order-by


【解决方案1】:

ORDER BY 子句中的每个列/表达式可以有其自己的 顺序(ASC/DESCASC 是默认值,如果未指定)。你可以写:

SELECT * FROM myTable
ORDER BY Total DESC, Area /* ASC */

Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 2016-01-02
    • 2017-03-06
    • 1970-01-01
    • 2012-04-03
    相关资源
    最近更新 更多