mysql - 用于数据排序的 SQL 查询

标签 mysql sql sql-server sorting

请帮助我如何编写排序查询。我有一组来 self 的 sql 查询的数据,如下图所示

enter image description here

目前数据排序为level order、sequence、chgcode。我希望我的数据按不同的排序显示。 也就是说,如果 level = 2,则排序将为 [按级别、顺序、更改代码、日期排序] 除此之外将是 [按级别、顺序、日期、更改代码排序]

我需要的实际结果如下图

enter image description here

最佳答案

这有点棘手,但是您可以为 order by 使用多个键:

order by level, sequence,
         (case when level = 2 then chgcode end),
         (case when level = 2 then date end),
         date,
         chgcode

前两个键对于两个组都是通用的。接下来的两个特定于 level = 2(并按此顺序);请注意,当 level 不是 2 时,两者的值都将为 NULL。最后两个用于其他所有内容。

关于mysql - 用于数据排序的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732922/

相关文章:

MySQL 尝试创建触发器以在进行新购买时更新库存

MySql 查询根据某些列字段从表中删除重复行?

sql - 有没有办法通过 tsql 获取 Windows 任务管理器详细信息?

c# - 确保仅 "Reasonable"查询

MYSQL 触发器从另一个表插入

php - 在页面中我有 for 循环函数吗?在 for($i=0;$i<=$max;$i++){ Size 查询中只从 mysql 数据库检索一行?

MySQL获取两个条件之间范围的id

sql - 获取3名或3名以上来自同城的员工列表?

sql - 使用表别名 UPSERT 来自另一个数据库的表

sql-server - SQL Server : set a variable in CASE statement