You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS Access查询使用*通配符无法返回Null值的技术求助

解决MS Access查询中LIKE通配符不包含Null行的问题

这问题我之前做Access查询时也踩过一模一样的坑!你遇到的核心问题是:在Access里,LIKE "*"是不会匹配Null值的——因为Null代表“未知”,和任何表达式做比较的结果都是“未知”,自然不会被筛选出来。给你几个简单有效的解决办法:

  • 方法一:用布尔逻辑直接替代通配符
    既然当条件为假时你需要返回所有行,那不如直接让Where子句在这种情况下返回True,完全避开通配符的坑:

    WHERE IIf(FormCondition, [Param] = [SpecificParam], True)
    

    这种写法更直观,当FormCondition为真时精准匹配指定参数,为假时直接放行所有行(包括Param为Null的)。

  • 方法二:补充Null值的匹配条件
    如果想保留原来的LIKE逻辑,可以额外加一个OR条件,专门处理Param为Null且条件为假的情况:

    WHERE 
        [Param] LIKE IIf(FormCondition, [SpecificParam], "*") 
        OR (NOT FormCondition AND [Param] IS NULL)
    

    这样当条件不满足时,既会匹配Param能和*通配符匹配的非Null行,也会包含Param为Null的行。

  • 方法三:用Nz函数转换Null值
    Access的Nz函数可以把Null值转换成你指定的默认值,比如空字符串。这样LIKE "*"就能匹配到转换后的空串,从而包含原来的Null行:

    WHERE Nz([Param], "") LIKE IIf(FormCondition, [SpecificParam], "*")
    

    这个方法改动最小,只需要给Param字段套一个Nz函数就行。

内容的提问来源于stack exchange,提问作者Dark_Eyes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 08:52:31