当我尝试运行这个sql时,我收到消息"连接表达式中的数据类型与#34;不匹配。
SELECT oldtable.name, oldtable.number, newtable.number
FROM oldtable, newtable
WHERE (([oldtable].[number]=[newtable].[number]));
我想比较两个表中的数字,并为所有相同的人添加适当的名称。 有人能帮助我吗?
答案 0 :(得分:0)
首选语法是使用join:
SELECT OT.name, OT.number, NT.number
FROM oldtable OT
INNER JOIN newtable NT ON OT.[number] = NT.[number]
但正如消息所示,您执行JOIN
操作的字段必须属于同一类型,这可能意味着您必须对其中一个或两个执行convert
或cast
操作那些专栏。
请发布您的表定义,以便我给出准确的答案,但是将两个连接列中的值转换为整数的示例如下所示:
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)