case具有两种格式,简单case函数和case搜索函数
case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略
1、简单函数
CASE sex
        WHEN '1' THEN '男'
        WHEN '2' THEN '女'
ELSE '其他' END
 
2、搜索函数
CASE WHEN sex = '1' THEN '男'
        WHEN sex = '2' THEN '女'
ELSE '其他' END
 
CASE WHEN col_1 IN ( 'a', 'b') THEN '第一类'
        WHEN col_1 IN ('c')       THEN '第二类'
ELSE'其他' END
 
实例一:比如下列场景,给出一些国家以及对应的人口数据,根据这些国家的人口数据,统计亚洲和北美洲的人口数量

--1、创建country表,包含两个字段country和population
CREATE TABLE country1(country STRING,population int)
CLUSTERED by(country) INTO 7 BUCKETS
STORED AS ORC 
tblproperties('transactional'='true');
--2、数据
BATCHINSERT INTO country1 batchvalues(
values("中国",600),
values("美国",100),
values("加拿大",100),
values("英国",200),
values("法国",300),
values("日本",250),
values("德国",200),
values("墨西哥",50),
values("印度",250)
);
CREATE TABLE country(country STRING,population int);
INSERT INTO TABLE country SELECT * FROM country1;
SELECT * FROM country;
 
--3、统计亚洲和北美洲人口数量
SELECT sum(population) AS sum,
(CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END) continents
FROM country
GROUP BY CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END;

实例二:给出一些国家以及对应性别的人口数据。根据这些国家的人口数据,分别统计男性和女性的人口数量

--1、创建国家表country2
CREATE TABLE country2(country STRING,sex INT DEFAULT 1,population int);
CREATE TABLE country3(country STRING,sex INT DEFAULT 1,population int)
CLUSTERED by(country) INTO 7 BUCKETS
STORED AS ORC 
tblproperties('transactional'='true');
BATCHINSERT INTO country3 batchvalues(
values('中国',1,340),
values('中国',2,260),
values('美国',1,45),
values('美国',2,55),
values('加拿大',1,51),
values('加拿大',2,49),
values('英国',1,40),
values('英国',2,60)
);
INSERT INTO TABLE country2 SELECT * FROM country3;
 
--2、按照国家和性别进行分组,统计人口数量
SELECT country,sum(
CASE WHEN sex=1 THEN population ELSE 0 end
) AS boy,
sum(
CASE WHEN sex=2 THEN population ELSE 0 end
) AS girl
FROM country2
GROUP BY country;
 

case when in.......

"select CASE " +
"WHEN areaName in('华北地区','东北地区') THEN 'A' " +
"WHEN areaName in('华东地区','华中地区') THEN 'B' " +
"WHEN areaName in('华南地区','西南地区') THEN 'C' " +
"else 'D' end areaLevelName,areaName,productName,clickNum,if(extendInfo=1,'自营','第三方') " +
"extendInfo from spark_base_data"

case when then else end用法的更多相关文章

  1. 转载:SQL中的case when then else end用法

    SQL中的case when then else end用法 来源: http://www.cnblogs.com/prefect/p/5746624.html Case具有两种格式.简单Case函数 ...

  2. mysql学习记录,CASE WHEN THEN ELSE END用法

    记mysql,case when then else end用法 用法1:搜索函数 SELECT r.order_no, r.golds, r.pay_tool, , ) ) END AS price ...

  3. MYSQL中case when then else end 用法

    条件语句 delimiter \\CREATE PROCEDURE proc_if ()BEGIN      declare i int default 0;   if i = 1 THEN      ...

  4. mysql操作查询结果case when then else end用法举例

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex          WHEN '1' THEN '男'          WHEN '2' THEN ...

  5. case when then else end 用法

    前段时间做项目过程中制作报表时编写的sql需要用到的case when then else end,因此将case的用法总结一下吧. CASE命令有两种语句格式:语法形式1:CASE expressi ...

  6. oracle:case when 语句的区间用法

    在练习case when 语句时,碰到一个例子,结果答案根本就不对,语法就通不过,开始想着是不是case 只能是一个固定的取值,毕竟例子内给的都是case是个固定的值,后来网上查了好久才发现还有区间的 ...

  7. oracle中的case when then else end 用法

    Case when 的用法,简单Case函数 简单CASE表达式,使用表达式确定返回值. 语法: CASE search_expression WHEN expression1 THEN result ...

  8. SQL中的case when then else end用法

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

  9. [转]SQL中的case when then else end用法

      Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' EN ...

  10. select case when if 的一些用法

    概述:sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情况下分别执行不同的操作. 首先,让我们看一下CASE的语法.在一般的SELECT中,其 ...

随机推荐

  1. web网络漏洞扫描器编写

    这两天看了很多web漏洞扫描器编写的文章,比如W12scan以及其前身W8scan,还有猪猪侠的自动化攻击背景下的过去.现在与未来,以及网上很多优秀的扫描器和博客,除了之前写了一部分的静湖ABC段扫描 ...

  2. dom 继承树

  3. Norns.Urd 中的一些设计

    Norns.Urd 是什么? Norns.Urd 是一个基于emit实现动态代理的轻量级AOP框架. 版本基于 netstandard2.0. 所以哪些.net 版本能用你懂的. 完成这个框架的目的主 ...

  4. 五、Zookeeper基于API操作Node节点

    安装zookeeper :linux下安装Zookeeper 3.4.14 zookeeper 分为5个包: org.apache.zookeeper //客户端主要类文件 org.apache.zo ...

  5. git 远端版本回退

    情景:本地更改推送远端后,想要回退到自己推送之前的某个版本. 比如想回退的分支为 test 分支. 风险:远端回退到某一版本后,之后的所有推送都没了(对应的日志记录也没了).如果是团队开发,不仅自己推 ...

  6. sqoop进行将Hive 词频统计的结果数据传输到Mysql中

    使用sqoop进行将Hive 词频统计的结果数据传输到Mysql中. mysql准备接受数据的数据库与表 hive准备待传输的数据 sqoop进行数据传输  mysql查看传输结果     二:电子书 ...

  7. uni-app微信小程序登录授权

    微信小程序授权是非常简单和常用的功能,但为了方便,还是在此记录一下要点: 首先是需要用到一个授权按钮来触发获取用户信息授权: 关键在于 open-type 为 getUserInfo , 然后有个@g ...

  8. Day5 - 01 函数及函数的调用概念

    函数就是最基本的一种代码抽象的方式.函数只需写一次,就可以多次调用.Python本身内置了很多有用的函数,可以直接调用. 调用函数    要调用一个函数,需要知道函数的名称和参数.可以通过help(x ...

  9. ant-design 基础格式

    1 格式 <template> <div> <center><h1>这是·注册页面</h1></center> <a-fo ...

  10. react第十二单元(react路由-使用react-router-dom-认识相关的组件以及组件属性)

    第十二单元(react路由-使用react-router-dom-认识相关的组件以及组件属性) #课程目标 理解路由的原理及应运 理解react-router-dom以及内置的一些组件 合理应用内置组 ...