【问题标题】:SQL - How to ORDER BY different columns in one querySQL - 如何在一个查询中按不同列排序
【发布时间】:2017-02-13 13:05:33
【问题描述】:

我正在尝试按不同的列来排序我的记录,而不仅仅是一个。我可以使用 ORDER BY 对我的记录进行排序,但是如果我想对表中的某些数据进行排序怎么办?

例如,我有一个包含AGEMONEYNAME 列的表。

  • 当我点击AGE时,我想做SELECT * FROM table ORDER BY age DESC/ASC

  • 当我点击MONEY时,我想做SELECT * FROM table ORDER BY money DESC/ASC

  • 最后,如果我想通过NAME订购,我想做SELECT * FROM table ORDER BY name DESC/ASC

结果应该是这样的:

我寻找了 CASE 但我没有找到我需要的东西,但我认为我必须使用类似 switch 语句的东西。这在 SQL 中是否存在?我也可以用 PHP 做到这一点,但我不明白怎么做。

谢谢!

【问题讨论】:

  • 添加一些示例表数据和预期结果 - 以及格式化文本。
  • 您的图片确实没有说明您希望如何排序结果
  • 根据您的编辑:这无法在 RDBMS 级别完成,请使用您的报告工具来完成

标签: sql sorting sql-order-by


【解决方案1】:

您有两个基本选择:您可以在数据库中订购,也可以在前端订购。如果要对数据进行分页,则希望在数据库中进行,但如果它只有几行,则可以在任何地方进行。请记住,前端无法对不是从数据库中提取的行进行排序

要在前端进行排序,请查阅您正在使用的编程框架的文档。

要在后端进行排序,每次需要不同的排序时都需要发送一个新的数据库查询。这是有道理的,因为您可能没有检索到要显示的所有行。因此,从您的问题中您了解 SQL,因此您只需要在每次点击时发送它。同样,请查阅您正在使用的编程框架的文档以获取帮助。

【讨论】:

  • 非常感谢!
猜你喜欢
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
相关资源
最近更新 更多