我需要在sql中查询0的varchar字段。
当我查询where ='0'时,我得到了生成的错误消息。
Conversion failed when converting the varchar value 'N' to data type int.
我无法确定问题的来源。我的谷歌搜索让我失败了,有人能指出我正确的方向吗?
编辑: 感谢这一个人的帮助,所以数据中的'N'只是极少数,所以他们没有出现在我的前100个查询中,直到我进一步限制搜索结果。
显然sql没有任何问题比较int与varchar(1),只要它们也是整数。我甚至没有意识到我在查询的更远处使用了一个int。
哦,抱歉没有分享我的查询,这很长很复杂,我试图分享我认为与之相关的内容。我将在以后的问题中写一个简化的查询。
任何人都知道如何将其标记为已解决?
答案 0 :(得分:2)
如果您的字段是varchar()
,则表达式为:
where field = '0'
无法返回类型转换错误。
此版本可以:
where field = 0
如果field
的值为'N'
,则会返回错误。我猜这就是情况。
否则,您的代码中有另一个表达式,通过从字符串到数字进行转换来解决问题。