34,588
社区成员
发帖
与我相关
我的任务
分享
--两个语句合并,成为2列
select sum(sl),
/*
假如表中有3条数据,分别是:
lx sl
'1' 3
'0' 4
'1' 9
那么下面的语句是这样运行的:
首先判断lx的值是否是'1',
如果是,那么返回sl的值,否则返回0.
对上面的3条数据,是这样的:
第一条数据返回3,
第二条数据返回0,
第三条数据返回9,
然后对这3个返回值求sum,也就是3+0+9 = 12
*/
sum(case when lx = '1' THEN s1 ELSE 0 END)
from t_dhdetail
--如果你只是想把两个语句的结果合并在一起,也就是变成2条数据,而不是两列
select SUM(sl) from t_dhdetail
union all
select SUM(sl) from t_dhdetail where lx='1'
select sum(sl) s1,sum(case when lx= '1' then s1 else 0 end) s2 from t_dhdetail
select sum(sl), SUM(CASE lx WHEN '1' THEN s1 ELSE 0 END)
from t_dhdetail