MySQL 写函数

CREATE DEFINER=`mysqladmin`@`%` FUNCTION `f_get_my_initiate_info`(
    `i_proc_inst_id_` varchar ( 128 ),
    `i_prodef_id_` varchar ( 64 ),
    `i_type` varchar ( 64 )
) RETURNS varchar(400) CHARSET utf8mb4
begin
    declare o_activityid varchar ( 400 );
    declare    o_activity_name varchar ( 400 );
    declare    o_user_id varchar ( 400 );
    declare    o_user_name varchar ( 400 );
    declare  o_out_str varchar ( 400 );
    --  declare 每一个字段一次
                select 
                    max(t.activity_name_) ,
                    max(h.activityid_) ,
                    max(h.assignee_) ,
                    max(k.user_id_) 
                into     o_activity_name,o_activityid,o_user_id,o_user_name 
                -- select 和 into   
              from act_ext_hi_activityinst t left join 
              act_ext_ru_procinst_assignee h
              on t.proc_inst_id_ = h.proc_inst_id and t.prodef_id_=h.prodef_id_ and t.activity_id_ = h.activityid_
              left join act_id_info k
              on h.assignee_ = k.id_
              where t.seq_ in 
              (
                  select 
                      max(seq_) from act_ext_hi_activityinst t, act_id_info t2, act_id_membership t3, act_id_group t4 where t.assignee_ = t2.key_ 
                      and t2.key_ = t3.key_ 
                      and t3.group_id_ = t4.id_ 
                      and t.proc_inst_id_ = i_proc_inst_id_  and t.prodef_id_ = i_prodef_id_
              );
                
                
        if i_type ='activityid' then  set o_out_str = o_activityid ; -- if 条件 =
            elseif(i_type ='activity_name') then  set o_out_str = o_activity_name; -- elseif关键字
            elseif(i_type ='user_id')    then  set o_out_str = o_user_id;
            elseif(i_type ='user_name')    then  set o_out_str = o_user_name;    
        end if;
        
    return o_out_str;
    
    end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想看海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值