如何纠正"表达式必须具有与相应表达式相同的数据类型"错误?

时间:2014-05-07 03:24:46

标签: sql oracle

例如,我有表部门和员工 我想找到员工的姓名和部门员工的预算属于 在员工表内部,它包含ename的员工姓名 部门表它包含部门预算

我使用的命令

SELECT ENAME FROM EMPLOYEE
UNION
SELECT BUDGET FROM DEPARTMENT
ORDER BY ENAME;

但我一直得到表达式必须具有与相应表达式错误相同的数据类型

有人可以向我解释我的概念有什么问题以及如何获得结果。

2 个答案:

答案 0 :(得分:0)

我猜你试图联合两个具有不同数据类型的表,而union需要两列的数据类型应该是相同的。

http://technet.microsoft.com/en-us/library/ms180026.aspx

请参阅msdn说The data types must be compatible.

答案 1 :(得分:0)

正如错误所说。看起来ENAME是一个字符串而BUDGET是一个数字。

听起来你想在查询中返回这两个值:

SELECT ENAME, SUM(BUDGET) 
FROM EMPLOYEE INNER JOIN BUDGET
ON EMPLOYEE.ID = BUDGET.ID
GROUP BY ENAME

注意我假设您的数据类型,随机丢弃ID,并假设您想要对数据求和。哦,和平台。我认为SQL应该是非常标准的,但这是T-SQL。