如何在WHERE子句中格式化此CASE表达式?

时间:2015-06-30 22:13:00

标签: sql sql-server

我正在尝试设置WHERE子句来查询所有紧急程度(1,2,3,4) 当选择“全部”时。

@Priority的值是: 1 - (严重) 2 - (高) 3 - (中) 4 - (低) 全部 - (所有优先事项)

....

WHERE Facility = 'HQ'
 AND Urgency = CASE WHEN @Priority = 'All' THEN IN ('1','2','3','4')
    ELSE Urgency = @Priority
END

=================

因此,如果选择'1'作为@Priority,则紧急度= 1,如果选择'2',则紧急度= 2.如果选择'全部',那么“紧急IN('1','2 ”, '3', '4')”。

有没有办法做到这一点?
谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

 WHERE 
    Facility = 'HQ' AND
    Urgency = CASE WHEN @Priority = 'All' THEN Urgency
                   ELSE @Priority END