У меня есть таблица с названием "Покупка", в которой есть столбец "Состояние", где 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
.
Тем не менее, это просто кажется многословным; У кого-нибудь есть более аккуратные идеи?