sql casewhen优化
有一张表里有12个月份的数据,现在我要查询每个月份的总和,再把12个月的总和加起来。我发现我的sql需要写12个casewhen,请问可以把这些casewhen语句放到循...
有一张表里有12个月份的数据,现在我要查询每个月份的总和,再把12个月的总和加起来。我发现我的sql需要写12个case when,请问可以把这些case when语句放到循环里吗?如果可以,该怎么优化代码。
展开
1个回答
展开全部
不能放循环,因为你每一个case都是针对一个列,而循环是针对的是行,所以不行
你可以考虑使用pivot行专列,然后再统计,你将12个月转换成行,数量转成列,然后就可以
如下使用:
select sum(case 数量 when 999999 then 0 else 数量 end) from table
pivot使用实例:网页链接
如果不使用行专列,你仅仅处理case的话,你可以建立一个函数,这样就只是调用函数,不用看到那么多case,不过这个换汤不换药
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询