Mysql IF语句中变量附近的SQL语法错误

Mysql IF语句中变量附近的SQL语法错误,mysql,function,if-statement,Mysql,Function,If Statement,我是MySQL的新手,我得到了: IF语句的“IsTrue=1 THEN”附近的SQL语法错误 MySQL函数类似于: DELIMITER $$ CREATE DEFINER=`root`@`localhost` FUNCTION `GetABCD`(Var1 int, Var2 int,Var3 Int, IsTrue int) RETURNS decimal(24,14) Return ( IF IsTrue=1 THEN Select sum(A) E from e_pnfi

我是MySQL的新手,我得到了:

IF语句的“IsTrue=1 THEN”附近的SQL语法错误

MySQL函数类似于:

DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION `GetABCD`(Var1 int, Var2 int,Var3 Int, IsTrue int) RETURNS decimal(24,14)
Return (

IF IsTrue=1 THEN

Select  sum(A) E from  e_pnfi 
where ID = (select ID from Main where  CenterID=Var1 
 and YourID=(Select YourID from year Where Year=Var2)) and res in (select highid from industry where mediumid=Var3)

ELSE

Select  sum(A) E from  e_pnfi 
where ID = (select ID from Main where  CenterID=Var1 
 and YourID=(Select YourID from year Where Year=Var2)) and res in (select highid from industry where highid=Var3)

END IF;

)

我哪里做错了?有人能帮助plz吗?

使用
BEGIN
END
语句

DELIMITER $$
CREATE FUNCTION `GetABCD`(Var1 int, Var2 int,Var3 Int, IsTrue int) 
RETURNS decimal(24,14)
BEGIN

    DECLARE retVal DECIMAL(24,14);
    IF IsTrue=1 THEN

        SET retVal = 
            (
            SELECT  SUM(A) E 
            FROM    e_pnfi 
            WHERE   ID IN (SELECT ID FROM Main WHERE  CenterID = Var1) AND 
                    YourID IN (SELECT YourID FROM year WHERE Year = Var2) AND 
                    res IN (SELECT highid FROM industry WHERE mediumid = Var3)
        );

    ELSE

        SET retVal =
        (
            SELECT  sum(A) E 
            FROM  e_pnfi 
            WHERE   ID IN (SELECT ID FROM Main WHERE  CenterID = Var1) AND 
                    YourID IN (SELECT YourID FROM year WHERE Year = Var2) AND 
                    res in (SELECT highid FROM industry WHERE highid = Var3)
        );

    END IF;

    RETURN retVal;

END $$
DELIMITER ;

谢谢你的建议,但是它在哪里返回我想在return()中返回的值呢?