Mysql IF语句中变量附近的SQL语法错误
我是MySQL的新手,我得到了: IF语句的“IsTrue=1 THEN”附近的SQL语法错误 MySQL函数类似于: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
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()中返回的值呢?