4

我有 2 列我想使用条件。但是我收到此错误消息,并且我的查询是正确的,我很快就会解决。

消息 8114,级别 16,状态 5,第 1
行将数据类型 varchar 转换为浮点数时出错。

所以这就是问题所在,我有一个临时表,其中 ID 号看起来像这样 9001011234 我们可以称它为 A,在另一个我想检查的表中看起来像这样 900101-1234 而这个是 B 这个是身份证号码的瑞典语格式。

所以在我的情况下,我想检查一下以获得正确的数量和正确的结果。

where A = B

查询的其余部分很好,当我删除这个条件时,它会给我一个结果。只是这一点不正确。

4

3 回答 3

5

您的VARCHAR格式无法简单地转换为数字。我会用它REPLACE(b,'-','') = a来修复格式,让 SQL Server 负责其余的工作。

于 2013-11-13T14:54:54.430 回答
2

说:

where A = CAST(REPLACE(B, '-', '') AS float)
于 2013-11-13T14:56:23.430 回答
-2

您正在尝试比较不同数据类型的值。例如,“一”= 1

您需要将其中一个值转换为与另一个相同的数据类型。

于 2013-11-13T14:53:51.753 回答