Sql同一字段上的多个Where子句

Sql同一字段上的多个Where子句,sql,where-clause,Sql,Where Clause,我在MS Access数据库中有几个查询,我正在SQL存储过程中重写这些查询。这些查询对同一字段应用了多个筛选器 select * from DT.SM_T_OCDetails where (Rest1 <> 'S' Or Rest1 Is Null) and (Rest2 <> 'S' Or Rest2 Is Null) and (Rest3 <> 'S' Or Rest3 Is Null) and (Rest4 <

我在MS Access数据库中有几个查询,我正在SQL存储过程中重写这些查询。这些查询对同一字段应用了多个筛选器

select *
from DT.SM_T_OCDetails
where 
    (Rest1 <> 'S' Or Rest1 Is Null)
    and (Rest2 <> 'S' Or Rest2 Is Null) 
    and (Rest3 <> 'S' Or Rest3 Is Null)
    and (Rest4 <> 'S' Or Rest4 Is Null)
选择*
从DT.SM_T_详细信息
哪里
(Rest1'S'或Rest1为空)
and(Rest2'S'或Rest2为空)
和(Rest3'S'或Rest3为空)
和(Rest4'S'或Rest4为空)
有没有更好的方法来写

(Rest1 <> 'S' Or Rest1 Is Null)
(Rest1'S'或Rest1为空)
部分问题?我考虑了coalesce,但除非我做错了,否则我认为这是行不通的

感谢使用coalesce:

coalesce(Rest1,'NOT-S') <> 'S'
coalesce(Rest1,'NOT-S')'S'

虽然我觉得你的原作更清晰。

谢谢,我只是不知道是否有更简单的方法。