упорядочение выполняется с использованием w в порядке убывания.если это нуль, тогда используйте x.если его значение равно нулю, используйте y, если оно равно нулю, тогда используйте z
Это будет COALESCE
:
order by coalesce(w,x,y,z) desc
Это даст вам результат, подобный следующему.Сначала все строки, которые начинаются с наибольшего значения (8 в моем примере), затем все строки, которые начинаются со следующего значения (7 в моем примере).
+ --+---+---+---+
| w | x | y | z |
+ --+---+---+---+
| 8 | 7 | 6 | 5 |
| | | 8 | 0 |
| | 8 | 6 | 8 |
| 8 | 8 | 8 | 8 |
| | | 7 | 0 |
| | 7 | 8 | 9 |
+ --+---+---+---+
Если вы хотите выполнить дальнейший порядок в этихстрок, затем расширяйте предложение ORDER BY
, например:
order by coalesce(w,x,y,z) desc, coalesce(x,y,z) desc, coalesce(y,z) desc, z desc