zoukankan      html  css  js  c++  java
  • Oracle语句优先级

    SQL> SELECT SAL SALARY FROM EMP WHERE SALARY<2500;
    Warning: connection was lost and re-established

    SELECT SAL SALARY FROM EMP WHERE SALARY<2500

    ORA-00904: "SALARY": 标识符无效

    Oracle中,在WHERE子句中引用列别名会出错,这是为什么呢?
    请看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 时才生成的,故在WHERE子句中根本看不到列的别名,自然无法引用列的别名了。

    如果想用列的别名就要这样:
    SELECT SALARY FROM (SELECT SAL SALARY FROM EMP) WHERE SALARY<2500;

  • 相关阅读:
    pku2351 Colored Sticks
    JSOI2010 满汉全席
    享元模式
    适配器模式
    合成模式
    原型模式
    创建型设计模式
    建造者模式
    装饰模式
    单例模式
  • 原文地址:https://www.cnblogs.com/lurenjia1994/p/7111124.html
Copyright © 2011-2022 走看看