mysql 存储过程 case 语句 else后面没有操作的话应该写什么
展开全部
要看你是用在什么语句中。
如果是select中,要看是不是统计,比如count时,else null;或者是sum或max,else 0;
如果是update中,举个例子:update table set a = case when b<= 1 then b else a end;
这里的写法是指,当b<=1时,用b的值更新a的值,否则不改变a的值,(那么我们就用a原来的值来更新a)
还可在where中使用。情况比较多。最好把你的语句写出来看看。
如果是select中,要看是不是统计,比如count时,else null;或者是sum或max,else 0;
如果是update中,举个例子:update table set a = case when b<= 1 then b else a end;
这里的写法是指,当b<=1时,用b的值更新a的值,否则不改变a的值,(那么我们就用a原来的值来更新a)
还可在where中使用。情况比较多。最好把你的语句写出来看看。
更多追问追答
追问
不,你误会了,是在存储过程里,每一个when then后面一个操作,但else后面没有操作,结果不写语法过不去,所以想问问写什么,像c语言就是default:break;那样
追答
如果你什么也不做,直接写null;试试,oracle里是这样的。mysql我没有试过。
展开全部
update IT set DEPT=CASE
when DEPT='机械' then '机械部'
when DEPT='生 产' then '生产部'
else DEPT
end;
update参考如上,else时填入原字段名即可。
如果填null会造成所有else条件值被赋null。
挖个坟,万一以后需要用到的时候我自己百度会找到~~~
when DEPT='机械' then '机械部'
when DEPT='生 产' then '生产部'
else DEPT
end;
update参考如上,else时填入原字段名即可。
如果填null会造成所有else条件值被赋null。
挖个坟,万一以后需要用到的时候我自己百度会找到~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实在没办法的话,可以写成0=0
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询