我认为这意味着考虑第一种情况或第二种情况。如果其中任何一种是正确的,则返回1。对吗?
case when upper(casetype) = 'ADHOC_SUCCESSFUL'
then 1
when casetype like 'Boundary_Issue_T%'
then 1
when upper(casetype) like '%ACTIVE_SUC%'
then 1
End as Successful
答案 0 :(得分:1)
一个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