Я использую оператор CASE
для создания столбца Quoted
. Таким образом, он отобразит значение 1 или 0.Как написать вложенный оператор CASE на основе запроса ниже?
Но тогда столбец DisplayStatus
должен быть создан на основе состояния предыдущего столбца Quoted
.
Похоже, что в этой ситуации я должен использовать вложенный оператор CASE. Но я не могу найти правильный запрос.
SELECT
case when isnull(grouptt.controlno,0) <>0 AND isnull(vwR.Premium,0) > 0 then
cast(1 as bit)
else cast(0 as bit)
end as Quoted,
CASE
WHEN a.DisplayStatus = 'LOST' AND quoted=1 THEN 'Quoted_Lost'
WHEN a.DisplayStatus = 'DECLINED' AND quoted=1 THEN 'Quoted_NotTakenUp'
WHEN a.DisplayStatus = 'NOT TAKEN UP' AND quoted=1 THEN 'Quoted_Lost'
ELSE
a.DisplayStatus
END
DisplayStatus
FROM MyTable
Совет: Я считаю полезным использовать 'declare @False как бит = 0, @True как бит = 1;' для обеспечения «постоянных» значений, которые легко читать. – HABO