我试图进行此查询,但我发现IF语句存在问题,我也尝试插入分隔符或者开始,否则它的工作方式不同。
如何根据变量的值来设置不同的查询?
create or replace view PazientiTarget as
select P.CodFiscale
from Paziente P INNER JOIN Esordio E ON E.Paziente=P.CodFiscale
NATURAL JOIN Terapia T
where E.Patologia='Ipertensione'
and E.Cronica='si'
and E.DataGuarigione is null
and E.DataEsordio + interval 10 year < current_date()
group by T.Paziente,T.Farmaco
having count(distinct T.Farmaco)<=2;
create or replace view Appoggio as
select T.Farmaco,T.Patologia,count(distinct T.Paziente) as Numero
from Terapia T NATURAL JOIN Esordio E inner join Patologia PA on PA.Nome=E.Patologia
where T.Paziente in (select PT.CodFiscale
from PazientiTarget PT)
and T.Patologia<>'Ipertensione'
and PA.ParteCorpo='Cuore'
and E.Cronica='si'
group by T.Farmaco,T.Patologia;
set @controllo=( select count(*)
FROM Appoggio A
where A.Numero=(select max(A1.Numero)
from Appoggio A1));
if @controllo > 1 then
select*
from Appoggio A
limit 0;
else
select*
from Appoggio A
where A.Numero=(select max(A1.Numero)
from Appoggio A1
where A.Farmaco<>A1.Farmaco);
end if;