sql casewhen优化

有一张表里有12个月份的数据,现在我要查询每个月份的总和,再把12个月的总和加起来。我发现我的sql需要写12个casewhen,请问可以把这些casewhen语句放到循... 有一张表里有12个月份的数据,现在我要查询每个月份的总和,再把12个月的总和加起来。我发现我的sql需要写12个case when,请问可以把这些case when语句放到循环里吗?如果可以,该怎么优化代码。 展开
 我来答
发生等将发生
2017-10-31 · TA获得超过478个赞
知道小有建树答主
回答量:653
采纳率:75%
帮助的人:325万
展开全部

不能放循环,因为你每一个case都是针对一个列,而循环是针对的是行,所以不行

你可以考虑使用pivot行专列,然后再统计,你将12个月转换成行,数量转成列,然后就可以

如下使用:

select sum(case 数量 when 999999 then 0 else 数量 end) from table

pivot使用实例:网页链接

如果不使用行专列,你仅仅处理case的话,你可以建立一个函数,这样就只是调用函数,不用看到那么多case,不过这个换汤不换药

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式