0
点赞
收藏
分享

微信扫一扫

sql-行列

自信的姐姐 2022-03-13 阅读 63

sql—case的说明

语法说明: 表达式以case 开始,以end结束,MySQL先从条件1开始判断,条件1成立,输出表达式1,结束;若条件1不成立,判断条件2,条件2成立,输出表达式2后,结束;…如果条件都不成立,输出表达式n。
格式说明 :

Case具有两种格式。简单Case函数和Case搜索函数。(要替换查询结果的数据)

第一种 格式 : 简单Case函数 :

eg:

select
    case job_level (字段名)
    when ‘1’ then ‘合格’
    when  ‘2’ then ‘不合格’
    else ‘垃圾’
     end
    from d.employee(表名)

第二种 格式 :Case搜索函数
格式说明

eg:

update employee
    set e_wage =
    case
    when job_level = ‘1’ then e_wage1.97
    when job_level = ‘2’ then e_wage
1.07
    when job_level = ‘3’ then e_wage1.06
    else e_wage
1.05
    end

提示:通常我们在写Case When的语句的时候,会容易忘记 end 这个结束,一定要记得哟!

比较: 两种格式,可以实现相同的功能。

简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的 值,剩下的Case部分将会被自动忽略

qe:各个年龄段要成为字段名,使用 count函数和case来完成需求

select  count(case when p.age between 0 and 10 then p.age end) as age1,
    count(case when p.age between 11 and 20 then p.age end) as age2,
    count(case when p.age between 21 and 30 then p.age end) as age3,
    count(case when p.age between 31 and 40 then p.age end) as age4,
    count(case when p.age between 41 and 50 then p.age end) as age5,
    count(case when p.age between 51 and 120 then p.age end) as age6
    FROM storied_building s 
    INNER JOIN building b ON s.id = b.storied_buildid 
    INNER JOIN people p ON p.buildid = b.id  
    where s.communityid = 1 ;
举报

相关推荐

SQL-事务

SQL- 索引

SQL-基础

SQL-分组查询

SQL-五(常用函数)

SQL-窗口函数合集

sql-查询当前月数据

0 条评论