我有一个查询应该根据列值按 asc 或 desc 对结果进行排序。
例如
如果类型为 manager 的员工存在 THEN order by join_date, bith_date ASC
否则,如果员工是开发人员,则通过加入日期、出生日期 DESC 订购。
我想实现以下目标,但无法实现。
ORDER BY CASE WHEN employee_type = 'm'
THEN joining_date, birth_date ASC;
WHEN employee_type = 'd'
THEN joining_date, birth_date DESC;
最佳答案
好吧,经过一番研究,我得到了答案。
我们可以有条件地在 where 子句中添加多列,如下所示:
ORDER BY DECODE(employee_type, 'm', joining_date, birth_date, salary) ASC,
DECODE(employee_type, 'd', joining_date, birth_date, salary) DESC
这将根据employee_type 对结果进行排序。
关于sql - sql中的条件order by子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14597695/