开发者

Mysql 中的case-when详解

开发者 https://www.devze.com 2024-08-12 11:17 出处:网络 作者: cssl-虞老师
目录什么是 case-when      case-when  是一种 sql 语句中的语法结构,结构如下:case when 主要用于数据的 行列转换(把一列数据转换为多列)前置条件:编写查询实现如下效果:  效果1:效
目录
  • 什么是 case-when      
    • case-when  是一种 sql 语句中的语法结构,结构如下:
    • case when 主要用于数据的 行列转换(把一列数据转换为多列)
  • 前置条件:
    • 编写查询实现如下效果:  
      • 效果1:
      • 效果2:

    什么是 case-when      

    case-when  是一种 sql 语句中的语法结构,结构如下:

           case 字段名 

            when  值   then  字段名|值  &nb编程客栈sp;

         php;  ...

           else   字段名|值     end 

    case when 主要用于数据的 行列转换(把一列数据转换为多列)

    前置条件:

    -- 表结构如下:

    create table demo2
    (
      country varchar(20),-- 国家
      sex int,-- 性别,男=1,女=2
      pop int-- 人口数量
    );

    -- 表数据如下:

    insert into demo2 values('中国',1,340);
    insert into demo2 values('中国',2,240);
    insert into demo2 values('美国',1,45);
    insert into demo2 values('美国',2,55);
    insert into demo2 values('加拿大',1,40);
    insert into demo2 values('加拿大',2,65);
    insert into demo2 values('英国',1,34);
    insert into demo2 values('英国',2,60);
    commit;

    编写查询实现如下效果:  

    效果1:

    Mysql 中的case-when详解

    答案1:

    SELECT
      d.country , 
      SUM(CASE d.sex 
      WHEN 1 THEN d.pop 
      ELSE 0 END)  AS man ,
      SUM(CASE d.sex 
      WHEN 2 THEN d.pop 
      ELSE 0 ENDpython)  AS woman
    FROM demo2 d  GROUP BY d.country ;

    效果2:

    Mysql 中的case-when详解

    答案2:

    SELECT 
    CASE d.countjsry 
    WHEN '中国' THEN '亚洲'
    WHEN 编程客栈'英国' THEN '欧洲'
    ELSE '美洲' END  AS 洲  ,
    SUM(d.pop)
    FROM demo2 d 
    GROUP BY (
       CASE d.country 
       WHEN '中国' THEN '亚洲'
       WHEN '英国' THEN '欧洲'
       ELSE '美洲' END 
    ) ;

    到此这篇关于mysql 中的case-when的文章就介绍到这了,更多相关Mysql case-when内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号