提前感谢您的关注!
我想将工作订单状态参数(@WOStatusCriteria)发送到存储过程(在SQL Server 2016中),以便在SELECT中使用。我想查询“ R”(已发布)或“ F”(固定)或两者的状态,具体取决于当前的需求。
由于可能的状态代码为C,F,R,U和X,因此我在WHERE子句中编写了以下CASE,希望如果未在参数中显式发送R或F,则R和F状态都将通过NOT C,NOT U,NOT X短语返回。它不起作用,我正在寻找一种可行的解决方案。任何对此的想法将不胜感激。
(wo.STATUS = CASE
WHEN @WOStatusCriteria = 'R' THEN 'R'
WHEN @WOStatusCriteria = 'F' THEN 'F'
END)
AND (NOT wo.STATUS = N'C' AND NOT wo.STATUS = N'U' AND NOT wo.STATUS = N'X')
答案 0 :(得分:0)
如果添加,您当前的代码应该可以工作
ELSE wo.STATUS
转到您的CASE表达式。
由于wo.STATUS
将始终等于wo.STATUS
,因此将忽略CASE并评估其他条件。