将两个表中的列合并为一个
Posted
技术标签:
【中文标题】将两个表中的列合并为一个【英文标题】: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 命令未正确结束”。
任何帮助或见解将不胜感激!
【问题讨论】:
【参考方案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:无效号码”,有什么想法吗?EMPLOYID
、EMPLID
和SECURITYGROUP
的数据类型是什么?
EMPLOYID: NUMBER;安全组:VARCHAR2(); EMPLID: VARCHAR2()
@user2100620 您需要将cast
上的列连接到相同的数据类型。使用to_char
或to_number
以上是关于将两个表中的列合并为一个的主要内容,如果未能解决你的问题,请参考以下文章