每日一句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