У меня есть 3 набора статусов следующим образом:
- Активно, в процессе
- Одобрено, Отправлено
- Закрыто, отклонено
Я пытаюсь создать SQL-запрос и добавить предложение CASE
в WHERE
. Пока у меня есть следующее:
DECLARE @showFirstSetOfStatuses BIT = 1
DECLARE @showSecondSetOfStatuses BIT = 0
DECLARE @showThirdSetOfStatuses BIT = 0
SELECT RequestId, RequestName, RequestStatus
FROM SomeTable md
WHERE md.RequestStatus IN(CASE WHEN @showFirstSetOfStatuses = 1 THEN 'Active, In Process'
WHEN @showSecondSetOfStatuses = 1 THEN 'Approved, Shipped'
WHEN @showThirdSetOfStatuses = 1 THEN 'Closed, Rejected' END)
Это, конечно, не возвращает никакого результата, потому что он не соответствует статусам. Я не могу понять, как передать несколько значений в THEN
части предложения CASE
. Так что-то вроде
THEN 'Active', 'In Progress'
...
Может кто-нибудь сказать мне, как это сделать, или это невозможно?