更好的方式来特殊情况where子句?

时间:2012-12-21 00:36:08

标签: sql where-clause

我有一个“特例”我需要在sql脚本中加以考虑。这就是我到目前为止所做的,我认为它有效,但看起来很混乱。它是sproc所以假设有一个@empStatus参数。如果员工@empStatus=2我希望使用Status 12返回所有员工。

select *
from Employees
where Title='Associate' and Status=@empStatus and Department='Sales'
    OR (@empStatus=2 and (Status=@empStatus or Status=1) and Title='Associate' and Department='Sales')

1 个答案:

答案 0 :(得分:4)

这应该涵盖它

SELECT 
    *
FROM
    Employees
WHERE
   Title='Associate'
   AND Department='Sales'
   AND ((Status=@empStatus) OR (@empStatus=2 AND Status=1))