在where子句中将字段声明为NULL时出错

问题描述

我们在sybase上运行了一个查询,对于某些帐号,我们收到以下错误,但对于其他帐号却有效

sqlanywhere错误1009145:不可能将数据类型转换为整数(10,0)到varchar(6,0) (oselib / hos_dfe.cxx 13811)

因此,我开始对其进行调试,发现错误来自于int格式的字段(值类似于20,200,721)。在像FieldA这样的NULL语句中,此字段被声明为NULl。

所以当我更改为STR(FieldA)时,它开始工作,现在一切正常。

但是我的问题是,为什么会导致上述错误。它是一个整数,该语句仅检查是否为空,并且db中的值为[NULL]。

这个领域为什么发生这种情况的任何想法?

解决方法

这不是整数:toggleButton.addEventListener('click',() => { navbarLinks.classList.toggle('active'); }); 。这是一个包含数字和逗号的字符串。

这不是整数:'10,000'。这是一个只有数字的字符串。

Sybase只能将全数字的字符串转换为整数,而逗号不是数字。 (好的,它也可以处理前导的负号。)您可以使用'10000'删除逗号:

replace()