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

SQL查询条件:返回Closed为NULL或NFA为TRUE,排除两者同时为真

解决SQL查询条件问题

首先,SQL的WHERE子句里没有else语法,你需要用逻辑运算符(AND/OR/NOT)组合条件来实现需求。

根据你的描述,需求是:返回Closed为NULL的行,或者NFA为TRUE的行,但要排除Closed不为NULL且NFA为TRUE的行。

拆解后,最终的有效条件可以用两种等价方式写:

写法一:明确组合逻辑

WHERE (Closed IS NULL OR tblDataDetail.ddt_nfa = TRUE) 
  AND NOT (Closed IS NOT NULL AND tblDataDetail.ddt_nfa = TRUE)

写法二:简化后的等价条件

仔细推导会发现,上面的逻辑其实等价于只保留Closed为NULL的行(因为NFA为TRUE且Closed不为NULL的情况被排除后,剩下的NFA为TRUE的行都属于Closed为NULL的范畴),所以可以直接写:

WHERE Closed IS NULL

如果你的真实需求是排除所有Closed不为NULL且NFA为TRUE的行(即允许Closed为NULL的所有行,以及Closed不为NULL但NFA为FALSE的行),那正确的条件是:

WHERE Closed IS NULL OR tblDataDetail.ddt_nfa = FALSE

或者更简洁的版本:

WHERE NOT (Closed IS NOT NULL AND tblDataDetail.ddt_nfa = TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:36:00