SQL查询筛选列值为Null及指定数值时遇问题求助
修正后的SQL语句
SELECT * FROM pr_premios_t WHERE fecha_PAGO BETWEEN '01-OCT-2021' AND '11-ABR-2022' AND (COD_PRODUCTO IS NULL OR COD_PRODUCTO IN (2, 3, 4));
原语句的问题点:
- 语法错误:
COD_PRODUCTO = 16,'is Null'的写法不符合SQL语法规则,不能用逗号分隔多个条件;且判断字段为Null必须使用IS NULL,而非= NULL(SQL中= NULL永远返回未知,无法匹配任何行) - 逻辑不符:原语句里的
COD_PRODUCTO = 16和需求(筛选值为Null、2、3、4的数据)冲突,因此替换为OR结合IN的组合条件,覆盖所有目标取值场景
内容的提问来源于stack exchange,提问作者RicardoVargas
相关产品推荐
相关产品推荐

