【问题标题】:Access 2013 SQL query null handlingAccess 2013 SQL 查询空值处理
【发布时间】:2016-06-10 20:18:08
【问题描述】:

我在 Access 中链接了两个 SQL Server 表。它们都加入了一个简单的 Access 查询。

SELECT * From TableMain
LEFT JOIN TableJoin on TableMain.ID=TableJoin.ID
WHERE TableMain.ID Is Not Null AND (TableJoin.Category='Category1' OR TableJoin.Category Is Null);

我无法检索 TableJoin.Category 为空的行。我试过Is Null<>NullIs Null 在 SQL Server 中使用相同的两个表,根据 the Microsoft help page 它也应该在 Access 中工作。我错过了什么?

【问题讨论】:

  • ODBC 驱动程序可能会将类别字段作为零长度字符串而不是空值拉出。也许尝试类似: Len(Nz(TableJoin.Category,"")) = 0 或类似的东西?
  • 试试 nz(TableJoin.Category='Category1')='Category1'

标签: sql sql-server ms-access


【解决方案1】:

检查一个值是否为空的几种方法:

  • IsNull(TableJoin.Category)
  • MainTable.ID 为空
  • Len(Nz(TableJoin.Category,""))=0(归功于 Fink 上面的回答)

同样(为了方便以后的读者),检查一个值是否不为空:

  • Not IsNull(TableJoin.Category)
  • MainTable.ID 不为空
  • Len(Nz(TableJoin.Category,""))0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多