这篇文章在借鉴前人的基础上,进行了验证,感谢前人的分享

一、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、已知数据按照另外一种方式进行分组,分析

  • 有如下数据:(为了看得更清楚,直接使用国家代码作为Primary Key)
    根据这个国家人口数据,统计各个大洲的人口数量
  • 用这个方法来判断工资的等级,并统计每一等级的人数
输出每一个人的薪资等级

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

方法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,如下图

case when的使用方法相关推荐

  1. SQL Case when 的使用方法

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END--Cas ...

  2. (转)SQL Case when 的使用方法

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...

  3. c++ switch/case 使用 string的方法

    原文:http://blog.csdn.net/yozidream/article/details/22789147 有时候,我们想写出下面这样的switch语句: [cpp] view plainc ...

  4. c语言when的使用方法,sql 中 case when 语法使用方法

    没有,用case when 来代替就行了. 例如,下面的语句显示中文年月 select getdate() as 日期,case month(getdate()) when 11 then '十一' ...

  5. CASE语句的使用方法

    CASE语句有两种: 一种是case [column] when,指定了判断条件所在的列. 另一种是case when [column],因为条件在子句中所以能对任意列进行判断. 本例建立一个员工表, ...

  6. mysql的 case用法_mysql数据库case语句的使用方法

    用case语句就可以很好的解决这个问题:  代码如下 复制代码 select a.master_id,sum(case when b.status=6 then 1 else 0 end) as to ...

  7. case when用法

    这篇文章在借鉴前人的基础上,进行了验证,感谢前人的分享 一.case when的使用方法 Case具有两种格式.简单Case函数和Case搜索函数. 第一种 格式 : 简单Case函数 : 格式说明 ...

  8. vb Select Case的使用 字符串整形的转换 输入错误str的直接输出

    实验一 运行效果 代码 Dim i As Integer Dim str As StringPrivate Sub Command1_Click()'接收str = Text1.Texti = Val ...

  9. getlanguage_Java语言环境getLanguage()方法与示例

    getlanguage 区域设置类getLanguage()方法 (Locale Class getLanguage() method) getLanguage() method is availab ...

  10. iservice封装有哪些方法_总结WebService的一些封装技巧

    今天早上起来,想谈谈.NET中的WebService,当然我不想讲什么是WebService,或者怎么用WebService,因为那个大家随便Google一下前100页都能找到答案.今天我想来分享一下 ...

最新文章

  1. 模拟宽度自适应的输入框
  2. “头移植模型”论文称换头术可行 业内疑两大问题未解
  3. 【域控管理】父域的搭建
  4. 使用LogParser分析IIS网站日志
  5. 统计车牌识别里面各个lable 的数量
  6. java张int 和 Integer的区别
  7. Sentence2vec
  8. [3D数学基础:图形与游戏开发]读书笔记 第10章(3D中方位与角位移)
  9. 联想交换机服务器型号,联想EN1032交换机 ISL vLAG配置
  10. 数据挖掘之数据处理——SVM神经网络的数据分类预测-意大利葡萄酒种类识别
  11. 恒星物联-河道液位监测系统方案 液位监测
  12. amoeba mysql_Mysql 基于 Amoeba 的 读写分离
  13. 17届华为杯数学建模大赛B题代码
  14. Ubuntu 10.04环境下载编译Android-2.2.1 (froyo) 源代码 1/2
  15. 实战|智能家居行业移动应用性能分析
  16. CAD图纸打印不出来
  17. 【EmTech China 2018】不容错过的科技盛典!(附萌新临时充电手册)
  18. 手把手教您从建模到仿真计算优化改进新能源汽车电驱动系统转子冲片强度
  19. oppo手机使用应用沙盒动态修改序列号信息
  20. iphone12锁屏密码忘记了怎么办 (苹果12如何找回密码)

热门文章

  1. 2022年全新USDT支付系统源码+支持自动监控回调
  2. 朋友圈营销:如何做好个人IP打造吸金朋友圈?(内附思维导图)
  3. 收获不止mysql_收获 不止SQL优化 抓住SQL的本质pdf
  4. Q学习(Q-learning)入门小例子及python实现
  5. 基于北斗GNSS高精度形变位移监测系统
  6. JDY-31蓝牙模块简单通信
  7. 操作无法完成 因为文件已在system中打开
  8. FMEA软件框图及接口功能库(FMEAHunter)
  9. 二阶系统响应指标图_一阶系统和二阶系统,了解一下!!!
  10. IEEE论文格式要求(翻译)