连接表达式中的数据类型不匹配

时间:2014-05-25 18:51:05

标签: sql

当我尝试运行这个sql时,我收到消息"连接表达式中的数据类型与#34;不匹配。

SELECT oldtable.name, oldtable.number, newtable.number
FROM oldtable, newtable
WHERE (([oldtable].[number]=[newtable].[number]));

我想比较两个表中的数字,并为所有相同的人添加适当的名称。 有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

首选语法是使用join

SELECT OT.name, OT.number, NT.number
 FROM oldtable OT
  INNER JOIN newtable NT ON OT.[number] = NT.[number]

但正如消息所示,您执行JOIN操作的字段必须属于同一类型,这可能意味着您必须对其中一个或两个执行convertcast操作那些专栏。

请发布您的表定义,以便我给出准确的答案,但是将两个连接列中的值转换为整数的示例如下所示:

SELECT OT.name, OT.number, NT.number
  FROM oldtable OT
    INNER JOIN newtable NT ON CAST(OT.[number] AS INT) = CAST(NT.[number] AS INT)