首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

在MYSQL存储过程中case语句里嵌套IF语句行吗?该如何处理

2012-04-24 
在MYSQL存储过程中case语句里嵌套IF语句行吗?小弟在存储过程中需要能进行多层判断,类假下面的写法case whe

在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

热点排行