我认为这意味着考虑第一种情况或第二种情况。
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
a case
表达式确保按顺序评估条件。该表达式返回与第一个评估为true的when
关联的then
子句。
在这种情况下,您可以将其写为:
(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
。
红移支持布尔类型,因此您也可以做:
(upper(casetype) = 'ADHOC_SUCCESSFUL' or
casetype like 'Boundary_Issue_T%' or
upper(casetype) like '%ACTIVE_SUC%'
) as Successful