一、select语句的执行顺序
1、from部分
2、where部分
3、group by部分
4、having部分
5、select部分
6、order by部分
二、验证where部分、select部分执行顺序
SELECT NAME,(CASE gender WHEN 1 THEN '男' WHEN 0 THEN '女' END),birth 生日
FROM students WHERE birth>to_date('1990/1/1','yyyy/mm/dd');
where部分使用birth可以正常执行:
SELECT NAME,(CASE gender WHEN 1 THEN '男' WHEN 0 THEN '女' END),birth 生日
FROM students WHERE 生日>to_date('1990/1/1','yyyy/mm/dd');
使用select部分的别名在where部分无法识别,验证了上述2、4的执行顺序;
三、验证order by部分和select部分执行顺序
SELECT NAME,(CASE gender WHEN 1 THEN '男' WHEN 0 THEN '女' END),birth 生日
FROM students ORDER BY 生日 desc;
使用select部分的别名可以在orader中使用,验证了order by和where的执行顺序