在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