运行 不同的 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)
尝试做一些非常简单的事情。使用 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)