1.case when 实现查询
select a.periodid,a.periodseq ,ifnull(case p_stautstype when 'inputflag' then inputflag when 'sdvflag' then sdvflag
when 'dmflag' then dmflag
when 'mrflag' then mrflag
when 'inputsigflag' then inputsigflag
when 'lockflag' then lockflag
when 'frozenflag' then frozenflag
end,'F')
as 'num' from (select projectid,periodid,0 as periodseq from edm_period where projectid=p_projectid and periodtype=0 union
select projectid,periodid,periodseq from edm_form_status where projectid=p_projectid and personid=v_personid and periodseq>0 and formid=0 )a
left join edm_form_status b on a.projectid=b.projectid and a.periodid=b.periodid and a.periodseq=b.periodseq
where a.projectid=p_projectid and rowid=0 and formid>0 and a.periodid=v_periodid and personid=v_personid
2.if函数实现
select count(*) from edm_person where projectid=p_projectid and if(CHAR_LENGTH(p_personcode)>0,personcode=p_personcode,1=1) ;