sql 查询需要特定的顺序

sql query needs a specific order by

我的查询没有任何顺序将导致:

owner   parent   target   key   value   operator   childOP
-----   ------   ------   ---   -----   --------   -------
267582  6        19       0     0       4          -1
267582  6        19       0     267582  32          4
267582  6        19       0     267583  32          4
267582  6        19       17    9       2           4
267582  6        19       20    8       2           4
267582  6        19       54    0       2           4
267582  6        19       60    5       0           4
267582  6        19       389   32      22         -1

但是我需要订购这个所以我得到如下结果:

owner   parent   target   key   value   operator   childOP
-----   ------   ------   ---   -----   --------   -------
267582  6        19       0     267583  32          4
267582  6        19       0     267582  32          4
267582  6        19       0     0       4          -1
267582  6        19       389   32      22         -1
267582  6        19       60    5       0           4
267582  6        19       54    0       2           4
267582  6        19       20    8       2           4
267582  6        19       17    9       2           4

我已经尝试过这个查询:.... WHERE owner = 267582 order by key asc, value desc

owner   parent   target   key   value   operator   childOP
-----   ------   ------   ---   -----   --------   -------
267582  6        19       0     267583  32          4
267582  6        19       0     267582  32          4
267582  6        19       0     0       4          -1
267582  6        19       17    9       2           4
267582  6        19       20    8       2           4
267582  6        19       54    0       2           4
267582  6        19       60    5       0           4
267582  6        19       389   32      22         -1

结果看起来很有希望,但仍然不是我想要的。

但在 keys = 0 之后,顺序更改为 DESC。

甚至可以通过这种方式实现吗?

提前致谢!

此致

首先对 key = 0 值进行排序。然后对键值 desc 进行排序。等等

order by case when key = 0 then 0 else 1 end, key desc, value desc