oracle 的case when 语法需要注意下。end不需要写双引号

case when
to_char(a.STARTING_TIME,'d')= then '周四'
ELSE '其他' END 来源,

场景1:比如说我们在数据库存了性别的字段,一般都是存0 和 1 代表男和女   然后我们会得到0和1之后在java中判断 ,很麻烦有么有?其实我们完全可以在sql中判断好之后拿来现成的。就是在sql中做判断就ok

SELECT
*,
CASE
WHEN ly = 'app' then '手机'
WHEN ly = 'pc' then '电脑'
ELSE '其他' END '来源'
FROM
stu 结果:

1 张1 1 pc  电脑
2 张2 1 app 手机
3 张3 1 app 手机
4 张4 2 app 手机

很简单  ,就是做个判断  固定语法  这是最简单的用法  看一眼就知道什么意思

场景2:比如说一个学生表,有学生id,名字,老师id,来源(app或者pc)  我们有这样的一个需求  我们想知道每个老师有几个学生,并且这些学生里面 来自app的有几个  来自pc的有几个。

这个就有点麻烦了,要看每个老师下面有几个学生 肯定是将老师id分组 然后count(1) , 这个简单  但是 我们还要知道每个老师下面学生分别来自app几个  pc端几个  无疑还是要用到count 然后再搭配case when 的用法来判断   好了  看代码

SELECT
count(1) '数量',
stu.tid,
COUNT(CASE WHEN ly = 'pc' then 1 END) pc,
COUNT(CASE WHEN ly = 'app' then 1 END) app
FROM
stu
GROUP BY
tid //结果
总数 老师id pc app
3 1 1 2
1 2 0 1 意思就是说 只要ly=pc 就算符合一条 然后用count累加 后面的那个1 无关紧要,你写任意数字都可以 但是我们习惯上都写1 比如我们习惯上统计总数喜欢count(1)

mysql数据库中case when 的用法的更多相关文章

  1. MySQL数据库中delimiter的作用概述

    以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...

  2. mysql数据库中列转行

    今天突然想到了数据库中的行专列与列转行,还不熟悉,在上网看了一下然后就自己写了个例子. 数据库表示这样滴! //全部查询出来SELECT (case type when 'MySql数据库' then ...

  3. 用JDBC把Excel中的数据导入到Mysql数据库中

    步骤:0.在Mysql数据库中先建好table 1.从Excel表格读数据 2.用JDBC连接Mysql数据库 3.把读出的数据导入到Mysql数据库的相应表中 其中,步骤0的table我是先在Mys ...

  4. MySQL数据库中.SQL文件的导出方式

    转自:http://tech.watchstor.com/management-117401.htm 在MySQL数据库中导入SQL文件是件很麻烦的事情,但是这是一项大家非常值得学习的技术,本文就从最 ...

  5. 带你了解数据库中group by的用法

    前言 本章主要介绍数据库中group by的用法,也是我们在使用数据库时非常基础的一个知识点.并且也会涉及Join的使用,关于Join的用法,可以看我写的上一篇文章:带你了解数据库中JOIN的用法如有 ...

  6. [MySQL]MySQL数据库中如何查询分组后每组中的最后一条记录?

    原文地址:https://codedefault.com/s/how-can-i-retrieve-the-last-record-in-each-group-mysql 问题描述 比如,在MySQL ...

  7. PHP往mysql数据库中写入中文失败

    该类问题解决办法就是 在建立数据库连接之后,将该连接的编码方式改为中文. 代码如下: $linkID=@mysql_connect("localhost","root&q ...

  8. MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述

    MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...

  9. 从Mysql数据库中导入导出表结构

    1.从Mysql数据库中导入sql表 很简单,只需要一个命令即可搞定:[root@localhost ~]# mysql -uroot -piweb_xxx_mysql iweb < modif ...

随机推荐

  1. python 中的集合set

    python中,集合(set)是一个无序排列,可哈希, 支持集合关系测试,不支持索引和切片操作,没有特定语法格式, 只能通过工厂函数创建.集合里不会出现两个相同的元素, 所以集合常用来对字符串或元组或 ...

  2. DockerHub使用简介

    常用的Docker镜像文件都有,就不用自己费劲的一点点配置了,这才是Docker的真正目的.就像Ghost里边含office,直接还原,不用一台台机器安装呢,省时省力,与高效工作的理念相契合. 至于, ...

  3. Java 线程内 递归 Bug 一例

    一个线程的run方法里使用递归方法,出了Bug. private boolean ispass(String creationId){ List<Map> maps =creationSe ...

  4. Jfrog Artifactory 创建docker 镜像仓库以及 push 镜像到 该仓库.

    1. 安装aitifactory 以及 启动 使用30天有效期激活 不在阐述. 2. 登录artifactory username:admin password:password 3. 创建 仓库 在 ...

  5. React 多组件传值props和this

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  6. Spring AOP切点表达式用法总结

    1. 简介        面向对象编程,也称为OOP(即Object Oriented Programming)最大的优点在于能够将业务模块进行封装,从而达到功能复用的目的.通过面向对象编程,不同的模 ...

  7. JDK8字符串拼接的正确姿势

    1. 对列表中的元素进行拼接 以前,对一个列表中的字符串进行拼接时,常见的代码如示例1所示: 代码示例1 List<String> ids = ImmutableList.of(" ...

  8. 学习笔记特别篇之orm的跨表

    models.Love.objects.filter(b__name="t1",g__nams="a1") 表示先inner join b on xx 再 in ...

  9. Intel处理器缺货将会持续到2019年第二季度!

    虽然Intel一再承诺加大投资.扩充产能,但一个不争的事实是,Intel处理器仍然都处于大面积紧张的缺货状态中,毕竟10nm迟迟无法规模量产,14nm上拥挤了太多产品线. 按照华硕CEO沈振来的最新说 ...

  10. BZOJ4001[TJOI2015]概率论——卡特兰数

    题目描述 输入 输入一个正整数N,代表有根树的结点数 输出 输出这棵树期望的叶子节点数.要求误差小于1e-9 样例输入 1 样例输出 1.000000000 提示 1<=N<=10^9 设 ...