zoukankan      html  css  js  c++  java
  • SQL之case when

    大致学习了下SQL的功能语句,case when 类似于c语言中的switich case语句,多分支选择,不同的值可以有不同的返回量。比如,在一个包含了sex字段的表中,可能的值为1、2,执行完下属语句后,值为1的地方返回 男,值为2的地方返回 女。

    --简单Case函数
    CASE sex
             WHEN '1' THEN '男'
             WHEN '2' THEN '女'
    ELSE '其他' END
    --Case搜索函数
    CASE WHEN sex = '1' THEN '男'
             WHEN sex = '2' THEN '女'
    ELSE '其他' END

    同时,case语句有两种实现方式。有如下表格: 

    国家(country) 人口(population)
    中国 600
    美国 100
    加拿大 100
    英国 200
    法国 300
    日本 250
    德国 200
    墨西哥 50
    印度 250
    现在要统计各大洲包含的人数,可利用如下语句实现:
    SELECT  SUM(population),
            CASE country
                    WHEN '中国'     THEN '亚洲'
                    WHEN '印度'     THEN '亚洲'
                    WHEN '日本'     THEN '亚洲'
                    WHEN '美国'     THEN '北美洲'
                    WHEN '加拿大'  THEN '北美洲'
                    WHEN '墨西哥'  THEN '北美洲'
            ELSE '其他' END
    FROM    Table_A
    GROUP BY CASE country
                    WHEN '中国'     THEN '亚洲'
                    WHEN '印度'     THEN '亚洲'
                    WHEN '日本'     THEN '亚洲'
                    WHEN '美国'     THEN '北美洲'
                    WHEN '加拿大'  THEN '北美洲'
                    WHEN '墨西哥'  THEN '北美洲'
            ELSE '其他' END;

    在sqliteman中对sqlite数据表格的测试代码及结果如下所示:

    同样,还可以用该方法判别各大洲国家的个数,代码及结果如下:

     

     

    此处,sum(perosn)对各大洲国家所对应的人数值进行求和,返回数值列的总数(总额);count(perosn)对各大洲的国家数进行统计,返回匹配指定条件的行数。

    以上资料部分参考自:https://www.cnblogs.com/prefect/p/5746624.html

  • 相关阅读:
    pandas 学习 第2篇:Series -(创建,属性,转换和索引)
    pandas 学习 第1篇:pandas基础
    linux中的软连接和硬链接
    分布式与集群的简单讲解
    Redis持久化
    CentOS7安装后无法使用鼠标选中,复制问题解决
    centos 7 安装 ifconfig 管理命令
    ES分布式文档数据库讲解
    Storm,Spark和Flink三种流式大数据处理框架对比
    mvn常见参数命令讲解
  • 原文地址:https://www.cnblogs.com/gethope5/p/8489077.html
Copyright © 2011-2022 走看看