数据库中case when condition then else end的理解

数据库中case when condition then else end的理解

  • 数据库中根据不同的条件求数量或者是总数

    select count(case when status=0 then 'done' end)as done,count(case when status=-1 then 'doing' end)as doing from t_func;
    • when 表示条件,then value end:表示符合条件则在对应赋值为value
    • count 计算所有有值的情况,会自动滤过null值
  • select (case column when condition then value else value) from tablename 中可以选值分类

    • 例子:
create table t_users (id int,name varchar(20),sex int);
insert into t_users(id,name) values(1,'张一');
insert into t_users(id,name,sex) values(2,'张二',1);
insert into t_users(id,name) values(3,'张三');
insert into t_users(id,name) values(4,'张四');
insert into t_users(id,name,sex) values(5,'张五',2);
insert into t_users(id,name,sex) values(6,'张六',1);
insert into t_users(id,name,sex) values(7,'张七',2);
insert into t_users(id,name,sex) values(8,'张八',1);
select * from t_users;
select id,name,(case when sex=1 then '男' when sex=2 then '女' else '空的' end) 性别 from t_users
  • t_users表内容:

    1 "张一"   [null]
    2 "张二"    1
    3 "张三"   [null]
    4 "张四"   [null]
    5 "张五"    2
    6 "张六"    1
    7 "张七"    2
    8 "张八"    1
  • 查询结果:

    1 "张一"    "空的"
    2 "张二"    "男"
    3 "张三"    "空的"
    4 "张四"    "空的"
    5 "张五"    "女"
    6 "张六"    "男"
    7 "张七"    "女"
    8 "张八"    "男"

转载于:https://www.cnblogs.com/MyUniverse/p/11567452.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值