SQL语句case when(需完善)

本文详细介绍了SQL中的CASE表达式,包括简单CASE表达式、搜索函数CASE及其实例应用。通过实例展示了如何使用CASE表达式解决实际问题,如计算男女比例和商品剩余数量。文章还提供了一个面试题示例,进一步加深了读者对CASE表达式的理解。

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

case-end:计算一组条件表达式,并返回一个符合条件的结果

1.简单的case表达式

语法:

CASE 列名   
WHEN 列名的值1 THEN 结果1   
WHEN 列名的值2 THEN 结果2
......  
[ELSE 结果]  //可省 

END [as 别名] 

例子:

SELECT id,address,age,name,sex ,CASE sex
WHEN 0 THEN '男'
WHEN 1 THEN '女'
END as 性别 from student


2.case搜索函数
CASE   
WHEN 条件1 THEN 结果1   
WHEN 条件2 THEN 结果2
......  
[ELSE 结果]  //可省 
END [as 别名]

例子:(结果和例1一样)
SELECT id,address,age,name,sex ,CASE 
WHEN sex=0 THEN '男'
WHEN sex=1 THEN '女'
END as 性别 from student

3.面试题:用一条SQL语句计算出男女比例


代码:(思路:先计算出男生人数,然后去除总人数,在计算出女生人数,在除总人数)
select 
sum(case when sex=0 then 1 else 0 end)/count(*) as 男生比例,  
sum(case when sex=1 then 1 else 0 end)/count(*) as 女生比例
from student

注:如果sum换成count的话那么不管条件怎样,计算的都是总条数

4.面试题:用一条SQL语句计算出商品剩余数量

 商品总数表  出货表

SQL语句:

SELECT 
1000-sum(case when name='A' then chuhuo else 0 end) A剩余量,
500-sum(case when name='B' then chuhuo else 0 end) B剩余量
from chuhuo

结果:

注:这里用了一种笨办法,直接用的商品总数去减,用两张表不知道怎么用



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值