SQL学习十八、在SQL中使用条件逻辑

在SQL中使用条件逻辑涉及到的关键字有:case when…then…else…end ;

以case开头,end结束。
when和then相当于“如果…那么”,
else相当于如果以上都不成立,那么就…

一般用于将数据库内字段值转换为可以看懂的值(说明性质的),例如,数据库中存储的性别为1和2,1代表男,2代表女,如果我们直接返回1和2 的话客户端不一定清楚这个对应规则,这时我们就可以利用这个条件逻辑,把1和2 转换为客户端可以看懂的男和女


使用说明

Case具有两种格式。简单Case函数和Case搜索函数。

–简单Case函数
CASE sex
         WHEN ‘1’ THEN ‘男’
         WHEN ‘2’ THEN ‘女’
ELSE ‘其他’ END

–Case搜索函数
CASE WHEN sex = ‘1’ THEN ‘男’
         WHEN sex = ‘2’ THEN ‘女’
ELSE ‘其他’ END


实际操作

例如我们在订单表中查询的时候, 订单表中肯有异常的数据,比如数量和单价有可能为负数或者NULL,而我们在查询的时候可以把负数转换为正数,把NULL转换为0输出。

  • 原数据

原数据

  • 查询语句
/*
订单中数量和单价为负数的时候,转换为正数;为null的时候转换为0输出
*/
select goodsName,
(case 
when quantity is null then 0
when quantity < 0 then abs(quantity) 
else quantity
end) as quantity,
(case 
when item_price is null then 0
when item_price < 0 then abs(item_price) 
else item_price
end) as item_price,
orderNo,userId,userName,orderTime,supplier
from oderlist
  • 查询结果

查询结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值