0

执行 SQL 行:



SELECT 
    BIRTH_MONTH "BIRTH MONTH",          
    BIRTH_COUNTRY "BIRTH COUNTRY",          
    BIRTH_CITY "BIRTH CITY",            
    BIRTH_COUNTY "BIRTH COUNTY"         

 FROM STUDENT_TABLE
  LEFT OUTER JOIN  SYS_GEN.USER_DOB
WHERE BIRTH_MONTH (BIRTH MONTH) <= 
USER_DOB.SYS_GEN_YEAR_MONTH

ORDER BY BIRTH_MONTH;

给我以下 ORACLE 错误:ORA-00905:缺少关键字

错误在这一行


WHERE BIRTH_MONTH (BIRTH MONTH) <= 

我不确定缺少的关键词是什么

4

2 回答 2

2

缺少 ON 关键字,您必须添加 On 关键字或尝试这样

于 2020-10-05T15:02:05.323 回答
0

显式连接使用 ON 关键字定义连接条件,其中 WHERE 用于附加过滤。

此外,加入条件似乎有点奇怪。为什么包括在内(BIRTH MONTH)

无论如何,您的查询应如下所示:

SELECT 
    STUDENT_TABLE.BIRTH_MONTH "BIRTH MONTH",          
    STUDENT_TABLE.BIRTH_COUNTRY "BIRTH COUNTRY",          
    STUDENT_TABLE.BIRTH_CITY "BIRTH CITY",            
    STUDENT_TABLE.BIRTH_COUNTY "BIRTH COUNTY"         

 FROM STUDENT_TABLE
  LEFT OUTER JOIN  SYS_GEN.USER_DOB
    ON STUDENT_TABLE.BIRTH_MONTH <=  USER_DOB.SYS_GEN_YEAR_MONTH

ORDER BY BIRTH_MONTH;

养成在多表查询中使用表名作为前缀的所有列引用的习惯。它使事情变得更清晰、更安全。如果表名看起来太长,请使用表别名。

于 2020-10-05T14:37:15.020 回答