У меня возникла проблема, пытаясь найти самое подходящее решение для следующей проблемы.
У меня есть таблица с названием «Покупка», в которой есть столбец «Состояние», где 1 авторизован, 2 завершен (есть некоторыедругие значения тоже).
У меня также есть таблица Retailer, в которой есть столбец RetailerProcessType, где 1 - одношаговое, а 2 - двухступенчатое.
У меня есть запрос ниже:
CASE purc.State
WHEN 1 THEN '"AUTHORISED"'
WHEN 2 THEN '"AUTHORISED"'
WHEN 4 THEN '"AUTHORISED"'
ELSE '"DECLINED"'
END
AS Autorised_Decline_Status,
Но мне нужно сделать следующее:
WHEN STATE = 2 AND RetailerProcessType = 1 THEN '"AUTHORISED"'
WHEN STATE = 1 AND RetailerProcessType = 2 THEN '"PENDING"'
WHEN STATE = 2 AND RetailerProcessType = 2 THEN '"AUTHORISED"'
ELSE '"DECLINED"'
Единственный способ, которым я могу думать об этом, - это массивный оператор IF
вокруг запроса, один дляодношаговый ритейлер, а другой - двухэтапный, поскольку, как я понимаю, предложение WHEN
не может содержать AND
.
Однако, это просто кажется многословным;У кого-нибудь есть более аккуратные идеи?