示例:
SQL> SELECT name N FROM Stu WHERE N<>a;
此时会报错,无法识别N。
首先要知道,在Oracle中,查询(select) 语句的执行顺序是下面这样的:
1. from语句
2. where语句(结合条件)
3. start with语句
4. connect by语句
5. where语句
6. group by语句
7. having语句
8. model语句
9. select语句
10. union、minus、intersect
11. order by
SELECT 语句在WHERE语句后面才执行,而列的别名是在SELECT 时才生成的,所以出错了
根据实际情况可以写成 select N from (SELECT name FROM Stu)where N<>a;
转载于:https://blog.51cto.com/xuehongrui/1323685