第一个代码是对的,第二个是错的,*和自定义表达式的顺序前后调换
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM `employees`
ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;
SELECT salary*12*(1+IFNULL(commission_pct,0)) AS 年薪,*
FROM `employees`
ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;
这样以别名排序也是对的
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM `employees`
ORDER BY `年薪` DESC;