Выражение
A case
гарантирует, что условия оцениваются по порядку. Выражение возвращает предложение then
, связанное с первым when
, значение которого равно true.
В этом случае вы могли бы написать это как:
(case when upper(casetype) = 'ADHOC_SUCCESSFUL' or
casetype like 'Boundary_Issue_T%' or
upper(casetype) like '%ACTIVE_SUC%'
then 1
end) as Successful
Я также был бы склонен добавить else 0
, поэтому результат будет либо 0
или 1
, чем NULL
или 1
.
Redshift поддерживает логические типы, поэтому вы также можете сделать:
(upper(casetype) = 'ADHOC_SUCCESSFUL' or
casetype like 'Boundary_Issue_T%' or
upper(casetype) like '%ACTIVE_SUC%'
) as Successful