CASE WHEN的简单用法

版权声明:本文为博主原创文章,可以随意转载,需注明出处。 https://blog.csdn.net/qq_32371887/article/details/75315025

  最近在做项目时遇到一个问题,要对一些条件进行模糊查询,但数据库中保存的是数字,找了一些方法,感觉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 '%完成%'

这里写图片描述

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

猜你喜欢

转载自blog.csdn.net/qq_32371887/article/details/75315025
今日推荐