CASE WHEN的简单用法

  最近在做项目时遇到一个问题,要对一些条件进行模糊查询,但数据库中保存的是数字,找了一些方法,感觉CASE WHEN比较好用。
  格式:
  CASE WHEN 字段=条件 THEN 结果
  ELSE 其它 END

 select rec.status rec_status,re_statue.sta 
         from
            (select id,
                (CASE WHEN status = 0 THEN '未领取 '
                WHEN status = 1 THEN '招聘中 '
                WHEN status = 2 THEN '招聘名额未满'
                WHEN status = 3 THEN '完成招聘'
                ELSE '其它'  END) as sta
                from recruitment
            ) as re_statue,
        recruitment rec
        where
        rec.id = re_statue.id
        and re_statue.sta like '%未%'

这里写图片描述

其中WHEN后面为条件,THEN后面为当数据为此时的结果。ELSE是超出以上条件的默认值。

另一种写法

 select rec.status rec_status,re_statue.sta from
        (select id,
        (CASE status WHEN 0
        THEN '未领取 '
        WHEN 1
        THEN '招聘中 '
        WHEN 2
        THEN '招聘名额未满'
        WHEN 3
        THEN '完成招聘'
        ELSE '其它'  END) as sta
        from recruitment) as re_statue,
        recruitment rec
        where
        rec.id = re_statue.id
        and re_statue.sta like '%完成%'

这里写图片描述

可见两种方式结果是相同的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值