【问题标题】:Joining columns from two tables into one将两个表中的列合并为一个
【发布时间】:2013-02-22 19:42:04
【问题描述】:

我有 2 个表,EMPLOYEEAPP 和 EMPLOYEEINFO。

当 SECURITYGROUP 列是某个值时,我想在 EMPLOYEEAPP 表中搜索 EMPLOYID。

然后我想从 EMPLOYEEAPP 表中获取 EMPLOYID,并使用 EMPLOYEEINFO 表中的 EMPLID 列搜索他们对应的名字和姓氏。

SELECT EMPLOYEEAPP.EMPLOYID, EMPLOYEEINFO.FIRST_NAME, EMPLOYEEINFO.LAST_NAME
FROM EMPLOYEEAPP
WHERE EMPLOYEEAPP.SECURITYGROUP = 'ANALYST'
INNER JOIN EMPLOYEEINFO
ON EMPLOYEEAPP.EMPLOYID=EMPLOYEEINFO.EMPLID

我不断收到错误“ORA-00933:SQL 命令未正确结束”。

任何帮助或见解将不胜感激!

【问题讨论】:

    标签: oracle plsql plsqldeveloper


    【解决方案1】:

    您将WHERE 子句放在错误的位置。查询应该是:

    SELECT EMPLOYEEAPP.EMPLOYID, 
      EMPLOYEEINFO.FIRST_NAME, 
      EMPLOYEEINFO.LAST_NAME
    FROM EMPLOYEEAPP
    INNER JOIN EMPLOYEEINFO
       ON EMPLOYEEAPP.EMPLOYID=EMPLOYEEINFO.EMPLID
    WHERE EMPLOYEEAPP.SECURITYGROUP = 'ANALYST'
    

    查询顺序为:

    SELECT
    FROM
    JOIN
    WHERE 
    GROUP BY 
    HAVING
    ORDER BY
    

    【讨论】:

    • 我现在收到“ORA-01722:无效号码”,有什么想法吗?
    • EMPLOYIDEMPLIDSECURITYGROUP的数据类型是什么?
    • EMPLOYID: NUMBER;安全组:VARCHAR2(); EMPLID: VARCHAR2()
    • @user2100620 您需要将cast 上的列连接到相同的数据类型。使用to_charto_number
    猜你喜欢
    • 2014-01-27
    • 2014-01-03
    • 2014-04-01
    • 2015-04-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    相关资源
    最近更新 更多