每日一句SQL:根据数据项的键排序

根据数据项的键排序

Q:要根据某些条件逻辑来排序。例如,如果JOB是SALESMAN,要根据COMM来排序。否则,根据SAL排序。要返回下面的结果集:

解决方案:

在Order by 子句中使用Case表达式:

select enmae,sal,job,comm from emp

order by case when job ='salseman' then comm else sal end

讨论

可以使用case表达式来动态改变如何对结果排序。传递Order by 的值类似这样:

select ename,sal,job,comm ,

case when job='salsman' then comm else sal end as ordered 

from emp order by ordered

原文地址:https://www.cnblogs.com/wanglee/p/2458736.html