一、 基本表达式

(case when {条件表达式} then {结果表达式} when {条件表达式} then {结果表达式} when {条件表达式} then {结果表达式} else {结果表达式} end) as 字段名

要注意不要漏了else 和end

二、 用法

1. 创建一个新字段,其取值由另外一个字段的取值确定。

例如,有如下数据,需要创建一个新列“评价”,根据考试成绩确定其评价结果,

成绩>=90, 优秀

90>成绩>=70, 良好

70>成绩>=60, 及格

成绩<60, 不及格

姓名 成绩 评价
张三 91  
李四 80  
王二 73  
大哥 66  
小弟 52  

SQL语法如下:

Select (case when 成绩>=90 then ‘优秀’when 成绩>=70 then ‘良好’when 成绩>=60 then ‘及格’else ’不及格‘ end) as 评价

2. 将长表数据转化为宽表数据

有以下表哥数据,需要将各个科目的值放到字段上去

姓名 科目 成绩
张三 语文 91
张三 数学 80
张三 英语 73
张三 物理 96
张三 化学 52

形成如下格式:

姓名 语文 数学 英语 物理 化学
张三 91 80 73 96 52

SQL 语法为:

Select sum(case when 科目=‘语文’ then 成绩 else 0 end)as 语文成绩,sum(case when 科目=‘数学’ then 成绩 else 0 end)as 数学成绩,sum(case when 科目=‘语文’ then 成绩 else 0 end)as 英语成绩,sum(case when 科目=‘数学’ then 成绩 else 0 end)as 物理成绩
from  table 成绩表
group by 姓名;

SQL case when 2种用法相关推荐

  1. SQL case when then 的用法

    sql case when then else end case具有两种格式.简单case函数和case搜索函数. --简单case函数 case sex when'1'then'男' when'2' ...

  2. oracle中SQL语句ge的用法,Oracle中SQL语句的几种用法

    在诊断数据库系统性能的过程中,总会涉及到跟踪效率低下的SQL语句,Oracle数据库10g包含一种新的实用程序trcsess,它可以让您基于会话ID或模块名称之类的条件,有选择地从大量跟踪文件中抽取出 ...

  3. SQL alter 的几种用法

    1 select * from Teachers 2 alter table Teachers add Position nvarchar(50) /* 增加列 */ 3 alter table Te ...

  4. mysql 查询后根据值的不同进行判断与修改,SQL中的条件判断语句(case when zhen)用法

    需求: mysql 查询后根据值的不同进行判断与修改 语法结构: SQL中的条件判断语句(case when zhen)用法 SELECT A.品号,属性,        CASE           ...

  5. Sql case when 用法实例详解

    sql中case when还是比较常见的用法.经常会出现一段时间不用,相关写法与语法又记不太清楚的情况.干脆就记一下,以备不时之需. 1.准备数据 现在有一张表xxx,里面有一个字段叫basicinf ...

  6. SQL CASE WHEN用法

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

  7. SQL、LINQ、Lambda 三种用法(转)

    SQL.LINQ.Lambda 三种用法 颜色注释: SQL LinqToSql Lambda QA 1. 查询Student表中的所有记录的Sname.Ssex和Class列. select sna ...

  8. 标准SQL的update语句三种用法

    标准SQL的update语句三种用法 一.环境: MySQL-5.0.41-win32 Windows XP professional   二.建立测试环境:   DROP TABLE IF EXIS ...

  9. SQL中的条件判断语句(case when zhen)用法

    简介: case具有两种格式.简单case函数和case搜索函数.这两种方式,可以实现相同的功能.简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式.还有 ...

最新文章

  1. android 默认中文时区,修改android默认系统语言为中文和时区
  2. feign 回退原因_0503-Hystrix保护应用-feign的hystrix支持
  3. 出口埃塞俄比亚,有哪些需要注意?
  4. [转]Oracle update用例
  5. Qt修改QSS中的qlineargradient属性,实现颜色渐变
  6. 七.激光SLAM框架学习之A-LOAM框架---速腾Robosense-16线雷达室内建图
  7. python分片的步长_Python的分片操作
  8. deep learning for symbolic mathematics论文梳理
  9. Maven构建Web项目
  10. 从Hive导入数据到ES
  11. php date()
  12. 2020中兴捧月算法大赛参赛总结
  13. Eclipse中出现无法找到Maven包Active Maven Profiles (comma separated)
  14. hdu 4565(推公式、矩阵快速幂)
  15. 公司最大的内卷,是“管理错位”
  16. 怎样做一个软件注册程序
  17. Hive实现数据文件导入与分析
  18. 使用命令符关闭笔记本自带键盘命令
  19. flume1.9学习笔记
  20. sql 纵向求和_SQL语句(行列转换以及字符串求和)

热门文章

  1. 6.1 范数最小解,右逆,零空间映射矩阵
  2. 【机器学习】集成学习知识点总结一
  3. python列表功能默写_Python list(列表)功能详解
  4. JEPaas代码_((列表,表单)刷新列表||刷新表单数据
  5. python以缩进对齐的方式划分语句块_python以什么划分语句块
  6. Android 自己定义View须要重写ondraw()等方法
  7. nginx利用image_filter动态生成缩略图
  8. oVirt Reports Portal 3.4 added to ovirt-engine
  9. 用户 Outlook 2007 附件突然不能预览,在国外网站找了解决方案。
  10. C#/Net代码精简优化技巧(1)