create FUNCTION f_get_triggerinfo(v_alarm_event_id  int) returns int
begin  
declare v_ret int;
select
(case when (exists (select 1 from alarm_trigger_client where  alarm_event_id=alarm_event.alarm_event_id and valid_flag='1')) then 1 else 0 end  case)
+
(case when (exists (select 1 from alarm_trigger_email where  alarm_event_id=alarm_event.alarm_event_id and valid_flag='1')) then 10 else 0 end case)
+
(case when (exists (select 1 from alarm_trigger_io where  alarm_event_id=alarm_event.alarm_event_id and valid_flag='1')) then 100 else 0 end case)
+
(case when (exists (select 1 from alarm_trigger_message where  alarm_event_id=alarm_event.alarm_event_id and valid_flag='1')) then 1000 else 0 end case)
+
(case when (exists (select 1 from alarm_trigger_popup_video where  alarm_event_id=alarm_event.alarm_event_id and valid_flag='1')) then 10000 else 0 end case)
+
(case when (exists (select 1 from alarm_trigger_preset where  alarm_event_id=alarm_event.alarm_event_id and valid_flag='1')) then 100000 else 0 end case)
+
(case when (exists (select 1 from alarm_trigger_tvwall where  alarm_event_id=alarm_event.alarm_event_id and valid_flag='1')) then 1000000 else 0 end case)
+
(case when (exists (select 1 from alarm_trigger_vrm where  alarm_event_id=alarm_event.alarm_event_id and valid_flag='1')) then 10000000 else 0 end case)
 into v_ret
 from alarm_event where alarm_event_id=v_alarm_event_id;
return v_ret;
end;求指教啊亲