SQL Null 语句不起作用 MS Access

Posted

技术标签:

【中文标题】SQL Null 语句不起作用 MS Access【英文标题】:SQL Null statement not working MS Access 【发布时间】:2015-06-03 00:15:32 【问题描述】:

所以我不太确定这里发生了什么,但在我的数据库中,我有一个包含 1000 条记录的表,其中 36 条 [workername] 为空。我试图运行此 SQL 来选择要分配的未分配的空 [workername] 记录,但是当我将代码置于查询设计和查看模式时,没有填充任何内容。我真的不知道为什么这不起作用。

strSQL = "SELECT IntakeID, 
                 caseid, 
                 [Program], 
                 [language] 
          FROM Intake 
          WHERE workername Is Null"
     Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)

【问题讨论】:

检查字段是否包含空字符串:WHERE Len(workername) = 0 【参考方案1】:

试试这个代码..首先它将使用Nz将空值替换为'',如果不为空,它将修剪该值以确保没有空格并检查它是否等于''表示空..希望它会有所帮助

"SELECT IntakeID, 
caseid, 
[Program], 
[language] 
FROM
Intake WHERE  LTRIM(RTRIM(Nz(workername, ''))) = ''"

【讨论】:

每个人都应该投票赞成!!!我到处寻找这个问题,这是唯一有效的!【参考方案2】:

该查询看起来有效,所以我会质疑该列是否实际上为空。

你可以试试下面的方法来确定

SELECT 
    IntakeID, 
    caseid, 
    [Program], 
    [language] ,
    ISNULL(workername)
FROM Intake 
  ORDER BY ISNULL(workername) ASC

【讨论】:

出于某种奇怪的原因,Expr1:IsNull([workername]) 但 workername 确实在下拉列表中作为一个选项,并且代码适用于 900 多个其他记录,所以这很奇怪。 你不只是喜欢 Access :)

以上是关于SQL Null 语句不起作用 MS Access的主要内容,如果未能解决你的问题,请参考以下文章

SQL / MS Access - 为啥这个 CASE 不起作用?

在 ms-access 表中插入多行的 SQL 代码

检查 MS Access SQL 语句中的空值

查询组合框过滤器在 Null 时不起作用(仅在表单中)

MS Access 2007 SQL 查询出现问题

MS Access SQL 切换功能