【问题标题】:query where '0'查询“0”在哪里
【发布时间】:2017-09-20 23:38:59
【问题描述】:

我需要在 sql 中查询一个 varchar 字段是否为 0。

当我查询 where field = '0' 时,我得到了错误消息。

Conversion failed when converting the varchar value 'N' to data type int.

我无法确定问题出在哪里。我的谷歌搜索失败了,有人能指出我正确的方向吗?

编辑: 感谢您对这个人的帮助,因此数据中只有极少数的“N”,因此在我进一步限制搜索结果之前,它们没有出现在我的前 100 个查询中。

显然,只要将整数与 varchar(1) 进行比较,sql 就没有任何问题,只要它们也是整数。我什至没有意识到我在查询的更远的地方使用了一个 int。

哦,很抱歉没有分享我的查询,我试图分享我认为与之相关的内容很长而且很复杂。我将在以后的问题中编写一个简化的查询。

有人知道如何将其标记为已解决吗?

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。您还应该使用示例数据显示(也许)简化版本的查询。
  • 请将您的查询添加到问题中。

标签: sql where


【解决方案1】:

如果你的字段是varchar(),那么这个表达式:

where field = '0'

无法返回类型转换错误。

这个版本可以:

where field = 0

如果field 的值为'N',它将返回错误。我猜是这种情况。

否则,您的代码中有另一个表达式通过将字符串转换为数字而导致问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-19
    • 2011-08-22
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    相关资源
    最近更新 更多