Un caso muy común es utilizar case anidados en plsql.
CASE
WHEN RETENCION='NO' THEN '0'
WHEN coalesce( A1.TARJETA,A2.TARJETA) is not null
THEN
case
WHEN (A1.fec_baja >= '01/01/2000') THEN '0'
WHEN (A2.fec_baja >='01/01/2000') THEN '0'
WHEN (A1.fec_baja is null AND A2.fec_baja is null) THEN '1'
ELSE '0'
END
WHEN (A3.f_baja <'01/01/2000') then'0'
WHEN (A3.f_baja is null) then'1'
else '0'
END
AS CAMPO_A