select empno,ename,sal*12 as Annual Salary  from emp
/为什么有错误  :未找到要求的关键字from  ??当我把 Annual Salary  加上双引号时 却成功了  ?

解决方案 »

  1.   


    --Salary 前面少个逗号
    select empno,ename,sal*12 as Annual,Salary from emp
    /
      

  2.   

    Annual Salary 中间有空格,所以必须加双引号,否则oracle当作两个字段来解析,当然出错。
      

  3.   

    select empno,ename,sal*12 as Annual Salary from emp
    如下:
    SELECT EMPNO,
        ENAME,
        SAL*12 AS ANNUAL SALARY
    FROM EMP;其中,SAL*12 AS ANNUAL oracle会认为,ANNUAL是SAL*12的别名,然后后面的SALARY会认为是EMP的一个字段,但是因为ANNUAL后面没有,号了,所以按照常规,后面应该是FROM但是又没有找到FROM关键词.因此会报找不到FROM错误.这个就是争取的了:
    SELECT EMPNO,
        ENAME,
        SAL*12 AS "ANNUAL SALARY"
    FROM EMP;
    因为oracle解析器会将"ANNUAL SALARY"作为SAL*12的别名。
      

  4.   

    select empno,ename,sal*12 as Annual Salary from emp
    如下:
    SELECT EMPNO,
        ENAME,
        SAL*12 AS ANNUAL SALARY
    FROM EMP;其中,SAL*12 AS ANNUAL oracle会认为,ANNUAL是SAL*12的别名,然后后面的SALARY会认为是EMP的一个字段,但是因为ANNUAL后面没有,号了,所以按照常规,后面应该是FROM但是又没有找到FROM关键词.因此会报找不到FROM错误.这个就是正确的了:
    SELECT EMPNO,
        ENAME,
        SAL*12 AS "ANNUAL SALARY"
    FROM EMP;
    因为oracle解析器会将"ANNUAL SALARY"作为SAL*12的别名。
      

  5.   

    Annual Salary作為別名,因為有非法字符空格,導致報錯。
    可以用雙引號解決類似問題
      

  6.   

    Annual Salary作為別名,含空格