在日常生活在我们会遇到这种问题:
例如我们有一个订单表,你想把所有的订单进行输出,但是有的订单是退款订单,有的订单是正常订单,而且你要把同一家公司的正常订单的金额汇总,如果使用WHERE判断订单的状态的话,在所有订单里面就无法输出退款过的订单了,那么就轮到我们的CASE WHEN THEN END出场了!
怎么使用呢?
select money,company,pay_status
case pay_status when '已付款' then sum(money) end '总付款价格'
group by company from '订单表'
这个语句的意思就是,当该订单的是已付款时,才会计算到总付款价格中,而且这样的话整张表也能输出已退款的订单