运行 不同的 SQL 语句使用 If Then 和变量

Run different SQL statements using If Then with a variable

尝试做一些非常简单的事情。使用 If/Then,有没有办法根据变量的值 运行 单独的 Select 语句? 下面代码中的函数 GetTotalActiveUnits() returns 一个整数。

    set @RetVal =  GetTotalActiveUnits(CustomerCode);
    if  @RetVal = 0 then 
    Select * from tblREF_UnitInfo;
    else
    select * from tblREF_State;
    end if

您的代码没有问题 - 至少就 IF 而言,如果它在存储例程中。

drop procedure if exists p;
delimiter $$
create procedure p(inp int)
begin
     set @RetVal = inp;# GetTotalActiveUnits(CustomerCode);
    if  @RetVal = 0 then 
     select @retval ;
    else
     select @retval ;
    end if ;

end $$

delimiter ;

call p(1);
+---------+
| @retval |
+---------+
|       1 |
+---------+
1 row in set (0.001 sec)

call p(0)
+---------+
| @retval |
+---------+
|       0 |
+---------+
1 row in set (0.001 sec)