case when then else end语句的用法

这篇具有很好参考价值的文章主要介绍了case when then else end语句的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

case具有两种格式。简单case函数和case搜索函数。

--简单case函数

            case sex

            when '1' then '男'

            when '2' then '女'

            else '其他' end

 --case搜索函数--经常用的是这个

            case when sex = '1' then '男'

            when sex = '2' then '女'

            else '其他' end

这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。 
还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。

--比如说,下面这段sql,你永远无法得到“第二类”这个结果

            case when col_1 in ( 'a', 'b') then'第一类'

            when col_1 in ('a')       then '第二类'

            else '其他' end

这是原始表:
case when then else end语句的用法

 例子一:看下select函数加case函数和不加case函数的区别

不加case函数的,SELECT  id,name,core,sex FROM student a ;

case when then else end语句的用法

 加case函数的,SELECT (CASE WHEN a.`name`='张三' THEN a.core ELSE 0 END) AS '张三' , id,name,core,sex FROM student a ;

case when then else end语句的用法

 可以看到,加了case函数的就是自己单独成一列,就是比不加多了一列数据,它并不会改变行的数量.

例子二:   介绍下case函数的执行过程.

SELECT (CASE WHEN a.`name`='张三' THEN a.core ELSE 0 END) AS '张三' FROM student a ;

 上面的执行过程:

进行匹配的是名字name,首先匹配第一行,name是等于张三,所以返回core也就是50
匹配第二行,name等于李四,不匹配,返回else的值也就是0
匹配第三行,name等于王五,不匹配,返回else的值也就是0
匹配第四行,name等于赵六,不匹配,返回else的值也就是0
所以得到结果:

case when then else end语句的用法

例子三:   看下case函数后面加不加as的区别

先看下加as, SELECT (CASE WHEN a.`name`='张三' THEN a.core ELSE 0 END) AS '张三' FROM student a ; 

    case when then else end语句的用法

 然后是不加as,   SELECT (CASE WHEN a.`name`='张三' THEN a.core ELSE 0 END) FROM student a ; 

 case when then else end语句的用法

 可以看到, 加as就是对生成的列取个别名,  不加as的话默认的列名就是 case这整个标签.

例子四:一列里面多次条件匹配

SELECT (CASE WHEN a.`name`='张三' THEN a.core WHEN a.`name`='李四' THEN a.core END) AS '张三' FROM student a ;

case when then else end语句的用法

 执行过程:第一行匹配张三成功,返回50,第二行匹配李四成功返回60,三四两行不匹配返回null

例子五:多列的单条件匹配

SELECT (CASE WHEN a.`name`='张三' THEN a.core END) AS '张三',(CASE WHEN a.`name`='李四' THEN a.core END) AS '李四' FROM student a;

case when then else end语句的用法

总结case语句能将行转换成列

例子六:实战一

有如下数据:

case when then else end语句的用法

根据这个国家人口数据,统计亚洲和北美洲的人口数量。得到下面这个结果:

case when then else end语句的用法

 查询sql:

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;

例子七:实战二

有如下数据:
case when then else end语句的用法

 按照国家和性别进行分组,得出结果如下:

case when then else end语句的用法

查询sql:

select country,

            sum( case when sex = '1' then

            population else 0 end),  --男性人口

            sum( case when sex = '2' then

            population else 0 end)   --女性人口

            from table_a

            group by country;
 文章来源地址https://www.toymoban.com/news/detail-498992.html

到了这里,关于case when then else end语句的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CASE WHEN函数语句多条件下使用详解

    目录 CASE 的两种格式: 简单CASE函数 和 CASE搜索函数 同时配合 SUM 以及 COUNT 方法的使用 ① SUM函数 ② COUNT函数 CASE WHEN函数语句,实现简单CASE函数和CASE搜索函数两种格式。 同时配合 SUM以及COUNT方法的使用 CASE 的两种格式:  简单CASE函数 和 CASE搜索函数 两种格式示例: 状态

    2024年02月11日
    浏览(72)
  • MySql中case when的用法

    case when介绍: case when语句,用于计算条件列表并返回多个可能结果表达式之一。 CASE 具有两种格式:简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。 CASE 搜索函数计算一组布尔表达式以确定结果。 两种格式都支持可选的 ELSE 参数。 这是代码格式: CASE    

    2024年02月16日
    浏览(51)
  • MySQL 判断语句 条件函数 case when、if、ifnull

    在MySQL中,需要用到条件判断函数,例如 case when、if、ifnull。 (1)if 注意: 一个条件表达式两个结果 expr :条件表达式; 如果结果为true,则返回result_true,否则返回result_false。 (2)ifnull 注意: 如果查询结果是 null ,就转换为特定的值 result :查询结果; value :如果查询结

    2024年02月04日
    浏览(74)
  • SQL中的CASE WHEN语句:从基础到高级应用指南

    我们使用一个名为\\\"Products\\\"的表,包含以下列:ProductID、ProductName、CategoryID、UnitPrice、StockQuantity。 示例展示 productID productName categoryID unitPrice stockQuantity 1 Laptop 1 800 50 2 Smartphone 1 500 100 3 T-shirt 2 20 200 4 Jeans 2 40 150 5 Headphones 1 100 75 1. CASE WHEN-基本使用 查询结果: ProductName UnitPric

    2024年02月09日
    浏览(73)
  • SQL之CASE WHEN函数语句多条件下使用详解

    针对CASE WHEN函数语句,实现简单CASE函数和CASE搜索函数两种格式。 同时配合 SUM以及COUNT方法的使用 1、CASE 的两种格式:  简单CASE函数和CASE搜索函数 两种格式示例: 状态: state 订单号: orderId 这两种格式式,可以实现相同的功能。但是简单CASE函数和CASE搜索函数相比,功能

    2024年02月11日
    浏览(97)
  • ASIC-WORLD Verilog(8)if-else语句和case语句

            在自己准备写一些简单的verilog教程之前,参考了许多资料----Asic-World网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。         这是网站原文:Verilog Tutorial         这是系列导航:

    2024年02月01日
    浏览(50)
  • PostgreSQL中case when与position包含用法

    对于复杂的业务场景,代码与SQL都可以去实现一个场景。如果用代码去实现看起来代码会冗余,不高效,不如sql的效率与简洁。 pgsql与mysql中case when用法几乎一致。在SQL中,“Case When”语句用于选择判断,在执行时先对条件进行判断,然后根据判断结果做出相应的操作;语法

    2024年02月05日
    浏览(65)
  • SQL中case when用法详解及使用案例

    Case具有两种格式。简单Case函数和Case搜索函数。 简单Case函数格式: Case搜索函数: case when与子查询性能比较及优化。 为了方便说明,我们先创建表,并造点数据。 统计亚洲和北美洲的人口数量,要求结果如下: 若第一时间没有想到case when,我们可能会写出下面的sql: 运行

    2024年02月15日
    浏览(81)
  • hive SQL: case when + group by 的用法

    假设有一个数据表,包含了不同人员的信息,其中包括姓名、性别、年龄等字段。现在需要统计不同年龄区间的人数,并按照年龄区间进行分组。可以使用如下 SQL 语句实现: ``` SELECT    CASE      WHEN age BETWEEN 0 AND 10 THEN \\\'0-10\\\'      WHEN age BETWEEN 11 AND 20 THEN \\\'11-20\\\'      WHEN a

    2024年02月08日
    浏览(78)
  • Mybatis 常用条件语句,大于小于、if、for、模糊搜索、case when、choose

    目录 大于小于 if 条件判断  for循环 LIKE 模糊搜索 case when choose选择语句 前言-与正文无关         生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中,我们往往容易陷入工作的漩涡,忘记了停下脚步,感受周围的世

    2024年02月01日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包