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. PHP代码审计分段讲解(5)

    11 sql闭合绕过 源代码为 <?php if($_POST[user] && $_POST[pass]) { $conn = mysql_connect("**** ...

  2. Leetcode学习笔记(4)

    题目1 ID121 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股 ...

  3. 软工团队作业--Scrum冲刺集合贴

    软工团队作业--Scrum冲刺集合贴 团队 团队名称:广东靓仔六强选手 团队成员: 黄清山 黄梓浩 钟俊豪 周立 邓富荣 郑焕 博客链接 Scrum 冲刺 第一篇 Scrum 冲刺 第二篇 Scrum ...

  4. 题解-CF1437F Emotional Fishermen

    题面 CF1437F Emotional Fishermen 给 \(n\) 个数的序列 \(a_i\),求有多少种 \(n\) 个数的排列 \(p_i\),使得 \[\frac{a_{p_i}}{\ ...

  5. P6100 [USACO19FEB]Painting the Barn G

    本题解提供的做法思路应该是比较清晰的,可惜代码实现比较繁琐,仅供大家参考. 题解 不难发现 \(x\) ,\(y\) 的取值范围只有 \(200\) ,所以我们可以考虑从这里入手.我们可以先通过二维前 ...

  6. Unity 保存游戏,读取游戏,退出游戏

    1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using System. ...

  7. uwsgi 的app变量名称必须为application

    from myproject import app as application if __name__ == "__main__": application.run() 否则会提 ...

  8. 工具-chrome相关-安装crx包及错误解决(99.3.1)

    @ 目录 1.安装教程 2.程序包无效:"CRX_HEADER_INVALID" 1.安装教程 在浏览器上输入 chrome://extensions 并且选择开发者模式 将.cr ...

  9. Maven史上最全的pom.xml详解

    下面主要是借鉴 官网的资料 收集而来 主要是为了讲解,用到的很少,但是还是需要了解 ,重点是方便查验资料 <project xmlns="http://maven.apache.org ...

  10. Centos7__Scrapy + Scrapy_redis 用Docker 实现分布式爬虫

    原理:其实就是用到redis的优点及特性,好处自己查--- 1,scrapy 分布式爬虫配置: settings.py BOT_NAME = 'first' SPIDER_MODULES = ['fi ...