sql语句 之 CASE WHEN 搜索语句

本文介绍如何利用SQL的CaseWhen语句从仓库日志表中统计个人领用、报废及归还物品的数量。通过具体示例展示了如何构建CaseWhen语句并结合聚合函数进行多条件的数据汇总。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天查询数据库时遇到一个问题,一个表中存了三种不同状态的的记录,即仓库日志表里存了 领出,报废,归还三个状态的字段,而我需要做的操作是统计出一个人的领用总数量,报废总数量,和归还总数量,自己用了很多种方法,但都行不通,最后还是大神提供了case when语句才得以解决,所以写下这篇日志得以记录以便不时之需;

case when 听起名字就知道,应该和switch 语句差不多;所以他的一般格式为:

case  

    when  列名= 条件值1   then  选择项1

    when  列名=条件值2    then  选项2.......

    else    默认值 end

你可以在 then 后面写任何值,当然你也可以用表中的字段 作为选项,我写的是多重 查询语句;

select UID,UNAME,sum(LingChuNum)as LCNUM,sum(BaoFeiNum)as BFNUM,sum(GuiHuanNum)as GHNUM FROM
(
  select uid ,uname,
  case when Type=1 then OutNum else 0 end as LingchuNum,
  case when Type=2 then OutNum else 0 end as BaoFeiNum,
  case when Type=3 then OutNum else 0 end as GuiHuanNum,
  from WareHouseLogList where UID=1 and Wcode=‘1001’

)t group by(UID,UNAME )

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值