mysql update使用when_MYSQL:case when用法
一、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用法相关推荐
- update case when 多字段,多条件, mysql中case when用法
文章目录 前言 sql示例 普通写法: update case when写法 update case when 多字段写法 case when语法 case when 的坑 1.不符合case whe ...
- mysql case when 去重_【Mysql】 case ... when ... 用法
mysql case when用法 SELECT CASE WHEN `categoryid` =1THEN '参赛队员'ELSE '指导老师'END FROM `blog_article` WHER ...
- mysql日期函数之DATEDIFF() if()用法 case when用法
mysql日期函数之DATEDIFF() if()用法 case when用法 背景: 用户密码七天后会过期,用户修改密码时会同步添加修改时间进数据库, 登录时校验用户是否需要修改密码, 一开始想的时 ...
- mysql update set_mysql update语句的用法详解
本文详细介绍了,mysql中update语句的用法,系统全面的学习下update更新语句的用法,有需要的朋友可以参考下 首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [I ...
- mysql update用法_mysql update语句的用法详解
首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] ...
- mysql数据库 when_mysql case when怎样运用?_数据库
mysql case when用法: MySQL 的 case when 的语法有两种: 简朴函数 CASE [col_name] WHEN [value1] THEN [result1]-ELSE ...
- mysql update select用法实例
http://www.3lian.com/edu/2014/05-13/147149.html 在mysql中,不能直接使用set select的结果,必须使用inner join: update a ...
- mysql update delete_MySQL中UPDATE与DELETE语句的使用教程
UPDATE 更新UPDATE SET 语法用于修改更新数据表中的数据. 语法: UPDATE tb_name SET column1 = new_value1,column2 = new_value ...
- mysql count null_MySQL函数大全及用法示例
需要SQL学习资料的同学见文末的资料领取方法. 1.字符串函数 ascii(str) 返回字符串str的第一个字符的ascii值(str是空串时返回0) mysql> select asc ...
最新文章
- 各种图论模型及其解答(转)
- JS中调用本地exe程序
- mysql修改的值子查询语句_MySQL的SQL语句 - 数据操作语句(13)- 子查询(13)
- Confluence 6 示例 - https://confluence.atlassian.com/
- Opencv速成笔记--图像处理1
- Photoshop (PS)下载安装
- Python实现电子词典(图形界面)
- Matplotlib饼状图
- word怎么恢复自动保存_如何使用自动恢复自动保存Word文档并恢复丢失的更改
- 如何在html中加入导航栏,网页制作时如何添加导航栏
- 沧桑,何尝不是一种美丽 ----红尘一笑
- Making Sense of all these Crazy Web Service Standards
- githug通关部分黏贴(git代码练习)
- 铁流:兆芯处理器媲美国际主流水准?言过其实
- 未来计算机图文,毕业图文集 |未来也要笑着走
- usb 进入suspend_解决了USB中suspend和resume的一个问题 | 学步园
- php empty 和空字符串区别
- C#常见错误—未将对象引用设置到对象的实例
- 浙大oj(basic level)1001
- PPT精品模板:个人创意销售企业公司介绍PPT