2011-02-17 87 views
0

我在SQL存储过程中重写MS Access数据库中有几个查询。查询有几个过滤器应用于相同的字段。Sql在同一个字段上多个Where子句

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) 

有没有更好的方式来编写查询的

(Rest1 <> 'S' Or Rest1 Is Null) 

一部分?我看着它凝聚在一起,但除非我做错了,否则我不认为这是有效的。

感谢

回答

2

使用聚结:

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

虽然实际上我觉得你原来是清晰的。 “

+0

+1”虽然我其实认为你的原稿更清晰。“ – UnkwnTech 2011-02-17 20:41:34