文档章节

SQL中的case when then else end用法

o
 osc_z1hvg4cu
发布于 2018/04/24 16:09
字数 294
阅读 15
收藏 0

精选30+云产品,助力企业轻松上云!>>>

一:简单用法:

  1.第一种写法:

SELECT
    s.s_id,
    s.s_name,
    s.s_sex,
    CASE
WHEN s.s_sex = '1' THEN ''
WHEN s.s_sex = '2' THEN ''
ELSE '其他'
END as sex,
 s.s_age,
 s.class_id
FROM
    t_b_student s
WHERE
    1 = 1

  2.第二种写法

SELECT
    s.s_id,
    s.s_name,
    s.s_sex,
    CASE s.s_sex
WHEN '1' THEN ''
WHEN '2' THEN ''
ELSE '其他'
END as sex,
 s.s_age,
 s.class_id
FROM
    t_b_student s
WHERE
    1 = 1

两个运行结果一样:

  有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略

二:分组

表数据:

t_b_population 

sql语句:

SELECT country,
    SUM(CASE WHEN p.sex = '1' THEN p.population ELSE 0 END) AS '',
    SUM(CASE WHEN p.sex = '2' THEN p.population ELSE 0 END) AS ''
FROM
    t_b_population p
GROUP BY country;

 运行结果:

表数据:

t_b_country 

sql语句:

SELECT
    SUM(c.population) AS '人口',
    CASE c.country
        WHEN '中国'   THEN '亚洲'
        WHEN '印度'   THEN '亚洲'
        WHEN '日本'   THEN '亚洲'
        WHEN '美国'   THEN '北美洲'
        WHEN '加拿大' THEN '北美洲'
        WHEN '墨西哥' THEN '北美洲'
 ELSE '其他' END AS ''
FROM
    t_b_country c
GROUP BY CASE c.country
        WHEN '中国'   THEN '亚洲'
        WHEN '印度'   THEN '亚洲'
        WHEN '日本'   THEN '亚洲'
        WHEN '美国'   THEN '北美洲'
        WHEN '加拿大' THEN '北美洲'
        WHEN '墨西哥' THEN '北美洲'
 ELSE '其他' END;

运行结果:

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
MySql 中 case when then else end 的用法

转载自: 解释: SELECT from sysuser --------整体理解: 在sysuser表中如果sex='1',则返回值'男'如果sex='2',则返回值'女' 否则返回'其他’ 用法一: 用法二: 列子: 有员工表empinfo 假......

低至一折起
2019/08/19
22
0
如何学习 SQL 语言?

作者:知乎用户 链接:https://www.zhihu.com/question/19552975/answer/123523074 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 首先,sql是所有数据...

osc_k8gz4mrf
2018/03/28
1
0
MySql 中 case when then else end 的用法

转: MySql 中 case when then else end 的用法 解释: SELECT case -------------如果 when sex='1' then '男' -------------sex='1',则返回值'男' when sex='2' then '女' -------------......

osc_v8gts6gd
2019/03/25
0
0
sql case when end as

CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在 WHERE 子句中使用 CASE。 首先让我们看一下 CASE 的语法。在一...

Oscarfff
2016/03/23
124
0
mysql学习记录,CASE WHEN THEN ELSE END用法

记mysql,case when then else end用法 用法1:搜索函数 SELECTr.order_no,r.golds,r.pay_tool,CASE WHEN r.paytool = 2 THEN IFNULL( (SELECT w.cashfee FROM wwweixinnotify w WHERE w.out......

osc_8wtzom6p
2018/01/09
6
0

没有更多内容

加载失败,请刷新页面

加载更多

Hacker News 简讯 2020-07-10

更新时间: 2020-07-10 01:15 US Supreme Court deems half of Oklahoma a Native American Reservation - (reuters.com) 美国最高法院认为俄克拉荷马州的一半是印第安人保留地 得分:131 | 评...

FalconChen
今天
26
0
OSChina 周五乱弹 —— 求求你吃了我吧,不要再玩弄食物的感情了

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :张喆的单曲《陷阱 》 这首歌已经在网易找不到原唱了,不知道被哪家买了版权。#今日歌曲推荐# 《陷阱 》- 张喆 手机党少年们想听歌...

小小编辑
今天
26
1
清华陈文光教授:AI 超算基准测试的最新探索和实践。

道翰天琼认知智能平台为您揭秘新一代人工智能。 无规矩不成方圆。放在超级计算机的研发领域,没有一个大家普遍接受的算力评测指标,便难以推动超算迅猛发展。 而现在伴随着人工智能的发展,大...

jackli2020
今天
7
0
@RequestMapping, consumes 提交简单有意思的测试

getParm @GetMapping("getParm")public Result getParm(String id){ System.out.println(); return ResultFactory.success(id);} 等同于 == bodyParm @PostMapping("bodyParm......

莫库什勒
今天
25
0
63. Unique Paths II

题目: 63. Unique Paths II A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The robot can only move either down or right at any p......

JiaMing
今天
55
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部