一、case when的使用方法

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

第一种 格式 : 简单Case函数 :

格式说明

case 列名

when   条件值1   then  选项1

when   条件值2    then  选项2.......

else     默认值      end

eg:

select

case   job_level

when     '1'     then    '1111'

when   '2'     then    '1111'

when   '3'     then    '1111'

else       'eee' end

from     dbo.employee

第二种  格式 :Case搜索函数

格式说明

case

when  列名= 条件值1   then  选项1

when  列名=条件值2    then  选项2.......

else    默认值 end

eg:

update  employee

set         e_wage =

case

when   job_level = '1'    then e_wage*1.97

when   job_level = '2'   then e_wage*1.07

when   job_level = '3'   then e_wage*1.06

else     e_wage*1.05

end

提示:通常我们在写Case When的语句的时候,会容易忘记 end 这个结束,一定要记得哟!

比较: 两种格式,可以实现相同的功能。

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

二、case when使用案例

下面我们来看一下,使用Case函数都能做些什么事情。

1、已知数据按照另外一种方式进行分组,分析

有如下数据:(为了看得更清楚,直接使用国家代码作为PrimaryKey)

根据这个国家人口数据,统计各个大洲的人口数量

用这个方法来判断工资的等级,并统计每一等级的人数

输出每一个人的薪资等级

然后计算每一个等级的数量

方法1:

方法2:

2、竖表转横表

如下表所示,统计日本、泰国不同性别的人口,“sex”中1代表男性、2代表女性、3代表无性、4代表双性,

要求以(国家、男性、女性、无性、双性)为字段输出表。

首先生成确定的字段(国家、男性、女性、无性、双性),

然后以case when来判断性别中人口的取值,并输出表如下图:

最后使用group by来通过国家分组,并取其中的最大值(有的人会使用sum求和,效果也是一样的)

最终结果如下图:

3、根据条件有选择的update

P_key是表A_TEST1的主键,结果a和b的顺序搞反了,这是需要把a和b倒换过来,一般情况下,要想把两条数据的Primary key,a和b交换,需要经过临时存储,拷贝,读回数据的三个过程,要是使用Case函数的话,一切都变得简单多了。

使用下列方式可将主键a、b替换过来

但这里有一个问题一定要注意,else 后面一定要将原有的值放进来,否则除了a、b意外的值会被置成null,如下图

原文:https://www.cnblogs.com/ichenhao/p/8383866.html

mysql update使用when_MYSQL:case when用法相关推荐

  1. update case when 多字段,多条件, mysql中case when用法

    文章目录 前言 sql示例 普通写法: update case when写法 update case when 多字段写法 case when语法 case when 的坑 1.不符合case whe ...

  2. mysql case when 去重_【Mysql】 case ... when ... 用法

    mysql case when用法 SELECT CASE WHEN `categoryid` =1THEN '参赛队员'ELSE '指导老师'END FROM `blog_article` WHER ...

  3. mysql日期函数之DATEDIFF() if()用法 case when用法

    mysql日期函数之DATEDIFF() if()用法 case when用法 背景: 用户密码七天后会过期,用户修改密码时会同步添加修改时间进数据库, 登录时校验用户是否需要修改密码, 一开始想的时 ...

  4. mysql update set_mysql update语句的用法详解

    本文详细介绍了,mysql中update语句的用法,系统全面的学习下update更新语句的用法,有需要的朋友可以参考下 首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [I ...

  5. mysql update用法_mysql update语句的用法详解

    首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] ...

  6. mysql数据库 when_mysql case when怎样运用?_数据库

    mysql case when用法: MySQL 的 case when 的语法有两种: 简朴函数 CASE [col_name] WHEN [value1] THEN [result1]-ELSE ...

  7. mysql update select用法实例

    http://www.3lian.com/edu/2014/05-13/147149.html 在mysql中,不能直接使用set select的结果,必须使用inner join: update a ...

  8. mysql update delete_MySQL中UPDATE与DELETE语句的使用教程

    UPDATE 更新UPDATE SET 语法用于修改更新数据表中的数据. 语法: UPDATE tb_name SET column1 = new_value1,column2 = new_value ...

  9. mysql count null_MySQL函数大全及用法示例

    需要SQL学习资料的同学见文末的资料领取方法. 1.字符串函数 ascii(str)   返回字符串str的第一个字符的ascii值(str是空串时返回0)  mysql> select asc ...

最新文章

  1. 各种图论模型及其解答(转)
  2. JS中调用本地exe程序
  3. mysql修改的值子查询语句_MySQL的SQL语句 - 数据操作语句(13)- 子查询(13)
  4. Confluence 6 示例 - https://confluence.atlassian.com/
  5. Opencv速成笔记--图像处理1
  6. Photoshop (PS)下载安装
  7. Python实现电子词典(图形界面)
  8. Matplotlib饼状图
  9. word怎么恢复自动保存_如何使用自动恢复自动保存Word文档并恢复丢失的更改
  10. 如何在html中加入导航栏,网页制作时如何添加导航栏
  11. 沧桑,何尝不是一种美丽 ----红尘一笑
  12. Making Sense of all these Crazy Web Service Standards
  13. githug通关部分黏贴(git代码练习)
  14. 铁流:兆芯处理器媲美国际主流水准?言过其实
  15. 未来计算机图文,毕业图文集 |未来也要笑着走
  16. usb 进入suspend_解决了USB中suspend和resume的一个问题 | 学步园
  17. php empty 和空字符串区别
  18. C#常见错误—未将对象引用设置到对象的实例
  19. 浙大oj(basic level)1001
  20. PPT精品模板:个人创意销售企业公司介绍PPT

热门文章

  1. 滴滴橙心优选大收缩:研发员工已裁掉一半,最晚11月关全国业务
  2. OJ1.3答案(全)(C++)
  3. ubuntu查看当前所在路径
  4. matlab中floor函数的使用(向下取整)
  5. Android常见输入inputType类型
  6. 视频:基于烧结,实现金属和陶瓷等多材料一体3D打印
  7. self-driving car 数据增强
  8. Python 智能语音机器人(改进版)
  9. ALSA子系统(六)------POP音排查
  10. 扩增子、宏基因组测序问题集锦