在MYSQL存储过程中case语句里嵌套IF语句行吗?
小弟在存储过程中需要能进行多层判断,类假下面的写法
case when v_iTempflag = 1 then
if v_iTempBalance - v_iTempcurpos >=0 then
-- 处理语句 ...(略)
elseif v_iTempBalance - v_iTempcurpos <0 then
-- 处理语句 ...(略)
end if;
when v_iTempflag = 2 then
if v_iTempBalance - v_iTempcurpos >=0 then
-- 处理语句 ...(略)
elseif v_iTempBalance - v_iTempcurpos <0 then
-- 处理语句 ...(略)
end if;
else -- 处理语句 ...(略)
end;
老是在第一个END IF;之后的WHEN这里报错“Incorrect syntax near 'WHEN'”,请教一下高手们这到底是什么原因?如果不能这样写,最优的解决方案是什么,谢谢!
------解决方案--------------------
你的完整的create procedure 语句是什么?
------解决方案--------------------不可以这样
这里的then类似C系列的return而不是Basic系列的if condition then
也就是then后面需要是个表达式,也就是返回一个运行结果
------解决方案--------------------上面的then说的是case when那个then