【问题标题】:SQL Command not properly ended?SQL 命令没有正确结束?
【发布时间】:2012-04-06 09:22:14
【问题描述】:

我正在使用带有临时关系的 SQL 语句,并收到错误 ORA-009933: SQL command not properly ended

我认为该声明没有任何问题,因此非常感谢您提供任何帮助。声明是:

SELECT Temp.name,
       Temp.AvgSalary
FROM   (SELECT A.aid,
               A.aname       AS name,
               AVG(E.salary) AS AvgSalary
        FROM   Aircraft A,
               Certified C,
               Employees E) AS Temp; 

谢谢

【问题讨论】:

  • 真的吗?没有join 条件,也没有group by?
  • 你说得对,我确实需要group by。谢谢

标签: sql oracle ora-00933 table-alias


【解决方案1】:

oracle 不支持 as 用于表别名,仅用于列别名,它们对于该用途是可选的 => 删除所有 as 关键字 ;)

【讨论】:

  • 通过这个,为了澄清,我发现我可以改用SELECT LNAME || ', ' || FNAME, ORG FROM myTable。我一直在做这样的事情:SELECT (SELECT LNAME || ', ' || FNAME FROM myTable AS NAME), ORG FROM myTable,而我什至不需要子查询的后一种格式导致了这个SQL Command not properly ended 错误,对我来说。
【解决方案2】:

你不应该把 AS temp.将别名放入表(或子查询)时,您应该只编写别名。这应该有效:

SELECT Temp.name, Temp.AvgSalary 
FROM ( SELECT A.aid, A.aname AS name, AVG(E.salary) AS AvgSalary 
       FROM Aircraft A, Certified C, Employees E)  Temp;

最好的问候,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多