用于数据排序的SQL查询

时间:2016-11-22 02:36:23

标签: mysql sql sql-server sorting

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

enter image description here

当前数据排序是逐级,顺序,chgcode。我想通过不同的排序显示我的数据。 如果level = 2,则排序将是 [按级别,顺序,chgcode,日期排序] 除此之外 [按级别,顺序,日期,chgcode排序]

我需要的实际结果如下图所示

enter image description here

1 个答案:

答案 0 :(得分:1)

这有点棘手,但您可以拥有order by的多个键:

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

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