提前感谢您的关注!
我想将工作订单状态参数 (@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')
如果添加以下内容,则当前代码应该可以工作:
ELSE wo.STATUS
到您的 CASE 表达式。
由于wo.STATUS
总是等于wo.STATUS
,因此CASE将被忽略,其他条件将被评估。