【问题标题】:WHERE datatable.column = '' is not working on live SQL serverWHERE datatable.column = '' 在实时 SQL 服务器上不起作用
【发布时间】:2014-02-20 14:21:06
【问题描述】:

我知道如何检查列/行单元格是否为空或 NULL 的问题有很多答案,尽管它们似乎给出了正确的方法,但我只能让它在我的本地工作服务器,不是我的实时服务器,所以想知道是否有人可以提供帮助。

问题:

edit:代码 sn-p 的 .cancelled = '' 部分在我的本地电脑上运行良好,但在实时服务器上无法运行。请注意,没有 AND .... .cancelled = '' 部分的 dateFrom 工作正常。

WHERE (ReservationDetailsTable.dateFrom = '" + chosenDatefrom + "') AND (ReservationDetailsTable.cancelled = '')

也尝试过使用

ReservationDetailsTable.cancelled IS NULL

ReservationDetailsTable.cancelled LIKE ''

DATALENGTH(ReservationDetailsTable.cancelled) = 0

在服务器版本上不起作用。我想要的是,只要取消的列中没有数据,它就会被选中。

我已经检查了列/行单元格中的内容以及所有其他数据是否与 SQL 语句匹配,我已经检查了列名的拼写等。如果我将字符串放入其中,它会按单元格中的数据工作和过滤' 和 ' 但如果我不这样做,则不会。

是否有可能即使我可以将数据放入数据表然后删除它也不为空或实际上为空?

我不是 SQL Server 专家,我只会编写 SQL 命令语句。

欢迎任何帮助。

已编辑为无法添加评论..

取消数据 = 两者都是数据格式 NVARCHAR(23)。它是存储一个字符串。已经尝试过 03/12/14 和 12/03/14 两种日期格式。到目前为止,谢谢。

【问题讨论】:

  • 如果它在一个 sql server 实例上运行,而在另一个实例上不起作用,您可能需要查看您的 data 而不是查询。
  • ReservationDetailsTable.cancelled的数据类型是什么?您如何调用查询?
  • 如果我不得不猜测,问题出在条件的另一部分。如果您删除 cancelled 条件,是否会返回任何内容?我怀疑两个服务器上的默认日期格式不同,这会阻止第一个条件的匹配。

标签: sql sql-server datatable


【解决方案1】:

我有点不懂,我猜cancelled字段的数据类型是DATE或DATETIME,那你为什么要把你的条件用''?

但是,如果对你来说这个条件没问题,你试过这个吗?

WHERE (ReservationDetailsTable.dateFrom = '" + chosenDatefrom + "')
AND (ReservationDetailsTable.cancelled is null OR ReservationDetailsTable.cancelled = '')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 2016-04-16
    • 2016-03-20
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    相关资源
    最近更新 更多