我有2列我想要使用条件。但我收到此错误消息,我的查询是正确的,我很快就会来。
Msg 8114,Level 16,State 5,Line 1
将数据类型varchar转换为float时出错。
所以这就是问题,我有一个临时表,其中ID号看起来像这个9001011234我们可以称之为A,在另一个我想用它查看它看起来像这个900101-1234和这一个对于B,这是Id-numbers的瑞典格式。
所以在我的情况下,我想检查一下,以获得正确的金额和正确的结果。
where A = B
查询的其余部分没问题,当我删除这个条件时它会给我一个结果。只是这一点是不正确的。
答案 0 :(得分:5)
您的VARCHAR
格式无法轻易转换为数字。我使用REPLACE(b,'-','') = a
来修复格式,然后让SQL Server处理剩下的事情。
答案 1 :(得分:2)
说:
where A = CAST(REPLACE(B, '-', '') AS float)
答案 2 :(得分:-2)
您正在尝试比较不同数据类型的值。例如,'one'= 1
您需要将其中一个值转换为与另一个相同的数据类型。