mysql之if和when函数

这篇博客介绍了SQL中用于逻辑判断的IF和WHEN表达式,展示了如何根据条件对数据进行分类和转换。通过实例解释了如何使用IF进行三层嵌套逻辑判断以及WHEN表达式的两种用法,包括条件判断和列值匹配。同时,给出了将性别字段转换为'男'、'女'或'其他'的示例。这些表达式在数据处理和分析中非常实用。

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

IF表达式
  1. IF(expr1,expr2,expr3)

如果 expr1 是TRUE ,则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。if语句还可以相互嵌套,如下

  1. IF(IF(expr1,expr2,expr3),expr2,expr3)

可以多层嵌套使用,多个判断语句

题目

使用if解决:

SELECT 
    device_id, gender, 
    IF(age IS NULL , '其他',
      IF(age < 20, '20岁以下',
        IF(age BETWEEN 20 AND 24, '20-24岁', '25岁及以上'))) AS age_cut // 三层嵌套
FROM
    user_profile;
WHEN表达式
  1. 用法一
CASE 
    WHEN 条件判断 THEN 结果
    ......
    WHEN 条件判断 THEN 结果
    ELSE 其他结果
END 

ELSE就是java当中的default

上面那个图使用when解法

SELECT 
    device_id, gender, 
CASE 
    WHEN age < 20 THEN '20岁以下'
    WHEN age < 25 THEN '20-24岁'
    WHEN age >= 25 THEN '25岁及以上'
    ELSE '其他'
END 
AS age_cut
FROM
    user_profile;
  1. 方法二
CASE 列值
    WHEN1 THEN 结果1
    ......
    WHEN2 THEN 结果2
    ELSE 其他结果
END 

举例
把性别改成男/女

SELECT 
CASE gender
  WHEN 'male' THEN '男'
  WHEN 'female' THEN '女'
  ELSE '其他'
END AS gender
FROM 
user_profile;
if和when联合使用

when的第一种用法和if可以联合使用

WHEN 条件判断 THEN 结果 ,其中条件判断可以改为if

参考
MySQL if 语句用法
mysql中的when的用法_MySQL数据库之Mysql casewhen的三种用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值