如何在IN列表中正确包含空白值或NULL选项?语法求助
正确处理包含NULL的IN逻辑判断
核心问题:IN操作符无法匹配NULL——在几乎所有编程语言中,NULL与任何值的比较结果都不会是true,所以直接把NULL塞进IN列表里完全没用。
你的需求是CLASS-A=ABC,且CLASS-B属于VALUE1/VALUE2/VALUE3 或 CLASS-B不存在(即NULL),正确写法需要拆分判断逻辑,用||单独处理NULL情况:
calcrt.get("CLASS-A") === "ABC" && (calcrt.get("CLASS-B") in ["VALUE1", "VALUE2", "VALUE3"] || calcrt.get("CLASS-B") === null)
额外提示:
- 如果
CLASS-B还可能出现空白字符串(比如""或带空格的" "),需要覆盖这种场景的话,再加一层判断:|| (calcrt.get("CLASS-B") && calcrt.get("CLASS-B").trim() === "") - 优先用严格相等
===代替==,避免隐式类型转换导致的逻辑错误。 - 必须给
IN判断和NULL判断加上括号,保证这两组判断是先做逻辑或,再和CLASS-A的判断做逻辑与,否则会出现逻辑顺序错误。
内容的提问来源于stack exchange,提问作者J3PO
相关产品推荐
相关产品推荐

