假设我有这个变量
DECLARE @Caracteristiques TABLE
(
EnsembleImmobilierId int,
ImmobilierId int,
BatimentId int,
Code varchar(5),
Valeur varchar(40)
)
用这个
查询它SELECT CONVERT(decimal(15,4), ISNULL(C.Valeur, 0))
FROM @Caracteristiques C
一切似乎都很好。 如果是为了instence,我正在更改临时表的变量表
CREATE TABLE #Caracteristiques
(
EnsembleImmobilierId int,
ImmobilierId int,
BatimentId int,
Code varchar(5),
Valeur varchar(40)
)
我收到了这个
Msg 8114,Level 16,State 5,Procedure IvpCalculation,Line 140
将数据类型varchar转换为数字时出错。
我们如何解释它?
答案 0 :(得分:0)
我的查询中没有任何问题;很可能在你的Valeur
列中有一个字符串值,例如“abcde”,它不能转换为十进制,因此它会抛出该错误。
我尝试过相同的操作,如果您的valeur
列的值类似于“12345”,则可以正常使用;即使你像cast(isnull(Valeur,'') as decimal(15,4))
一样投射。看下面的小提琴