SQL:CASE WHEN THEN ELSE END语句
  ndh0xMjNGcR6 2023年11月13日 19 0


CASE语句遍历条件并在满足第一个条件时返回一个值

文档

语法

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

示例

-- 创建用户表
create table tb_user (
    id int primary key auto_increment comment '自增主键',
    name varchar(20) not null comment '姓名',
    age int comment '年龄'
) comment '用户表';


-- 初始化数据
insert into tb_user (id, name, age) values (1, '张飞', 20);
insert into tb_user (id, name, age) values (2, '赵云', 30);
insert into tb_user (id, name, age) values (3, '刘备', 40);
insert into tb_user (id, name, age) values (4, '关羽', 25);
insert into tb_user (id, name, age) values (5, '孙权', 35);


-- 查看数据
mysql> select * from tb_user;
+----+--------+------+
| id | name   | age  |
+----+--------+------+
|  1 | 张飞   |   20 |
|  2 | 赵云   |   30 |
|  3 | 刘备   |   40 |
|  4 | 关羽   |   25 |
|  5 | 孙权   |   35 |
+----+--------+------+
5 rows in set (0.00 sec)

查询语句中使用case

select 
    id, name, age, (
    case
        when age <= 30 then '小于等于30岁'
        when age <= 35 then '小于等于35岁'
        else '其他年龄段'
    end ) as age_case
from tb_user;

+----+--------+------+-------------------+
| id | name   | age  | age_case          |
+----+--------+------+-------------------+
|  1 | 张飞   |   20 | 小于等于30岁      |
|  2 | 赵云   |   30 | 小于等于30岁      |
|  3 | 刘备   |   40 | 其他年龄段        |
|  4 | 关羽   |   25 | 小于等于30岁      |
|  5 | 孙权   |   35 | 小于等于35岁      |
+----+--------+------+-------------------+
5 rows in set (0.00 sec)


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
ndh0xMjNGcR6