SQL case when 的几种用法

本文详细介绍SQL中Case When语句的三种应用方法,包括基于字段值的简单判断、有条件逻辑判断以及处理NULL值,帮助读者掌握更灵活的数据处理技巧。

SQL case when 的几种用法
第一种:case用于实现简单的"等于"判断。
比如数据库里的某个字段(VoucherClass)记录着不同的单据类型,比如数据库里显示1、2、3;1代表的是进货单;2代表的是退货单;3代表的是出库单;如果要做成报表展示出来,应该是不会将1、2、3展示出来,这时在查询语句里就可以使用case函数啦。
case 字段名
when ‘字段值’ then ‘需要返回的值’
when ‘字段值’ then ‘需要返回的值’
else ‘剩余所有的需要返回的值’
end

SELECT
(CASE tv.VoucherClass
WHEN ‘1’ THEN ‘进货单’
WHEN ‘2’ THEN ‘退货单’
ELSE ‘出库单’
END) AS voucherclass
FROM dbo.Table_Vouchers AS TV
在这里插入图片描述

第二种:case还可用于"有条件"的逻辑判断。
比如当单据为出库单时,那么数量要显示为负数,其余单据的数量都显示为正数。
case
when 字段名 = ‘字段值’ then ‘需要返回的值’
else ‘剩余所有的需要返回的值’
end

SELECT
(CASE
WHEN tv.VoucherClass =‘3’ THEN (tvi.Count * -1)
ELSE tvi.Count
END )
AS count
FROM dbo.Table_Vouchers AS TV
JOIN dbo.Table_VoucherItems AS TVI ON tvi.VoucherId=tv.Id
在这里插入图片描述
注意:两种用法最后else 可以写,可以不写,但都需要 ‘end’ 结尾

第三种 判断字段为null的方法
select case when AnditCount is null then 0 else AnditCount end
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值