SQL - 如何在一个查询中对不同列进行排序

标签 sql sorting sql-order-by

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

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

  • 当我点击 AGE 时,我想要执行 SELECT * FROM table ORDER BYage DESC/ASC

  • 当我点击MONEY时,我想要执行SELECT * FROM table ORDER BY Money DESC/ASC

  • 最后,如果我想按NAME排序,我想做SELECT * FROM table ORDER BY name DESC/ASC

结果应该与此类似:

enter image description here

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

谢谢!

最佳答案

您有两个基本选项:您可以在数据库中订购,也可以在前端订购。如果您要对数据进行分页,您希望在数据库中执行此操作,但如果只有几行,则可以在任一位置执行此操作。请记住,前端无法对您未从数据库中提取的行进行排序

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

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

关于SQL - 如何在一个查询中对不同列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42204767/

相关文章:

mySQL随机选择概率

sql - 每个帐户每月的运行总计

Postgresql:按分区键排序的查询

arrays - 按类型对结构数组进行排序,然后按另一个属性按字母顺序排序

mysql 不使用 Order by using DESC 进行排序

php - 在 Doctrine 2 ORDER BY 中使用 DQL 函数

MySQL:获取具有最小值的整行

c# - 奇怪的 SQL 错误 int 参数转换为 nvarchar

linux - Bash sort -nu 会导致意外行为

.net - 是什么导致 WPF ListCollectionView 使用自定义排序来重新排序其项目?