MySql 中关键字 case when then else end 的用法

解释:

1 SELECT
2     case                   -------------如果
3     when sex=‘1‘ then ‘男‘ -------------sex=‘1‘,则返回值‘男‘
4     when sex=‘2‘ then ‘女‘ -------------sex=‘2‘,则返回值‘女‘
5     else ‘其他‘                 -------------其他的返回‘其他’
6     end                    -------------结束
7 from   sys_user            --------整体理解: 在sys_user表中如果sex=‘1‘,则返回值‘男‘如果sex=‘2‘,则返回值‘女‘ 否则返回‘其他’

--- 用法一:

1 SELECT
2             CASE WHEN STATE = ‘1‘ THEN ‘成功‘
3                  WHEN STATE = ‘2‘ THEN ‘失败‘
4             ELSE ‘其他‘ END
5             FROM  SYS_SCHEDULER

---用法二:

1 SELECT STATE
2             CASE WHEN ‘1‘ THEN ‘成功‘
3                  WHEN ‘2‘ THEN ‘失败‘
4             ELSE ‘其他‘ END
5             FROM  SYS_SCHEDULER

例子:

 1 有员工表empinfo
 2 (
 3 Fempno varchar2(10) not null pk,
 4 Fempname varchar2(20) not null,
 5 Fage number not null,
 6 Fsalary number not null
 7 );
 8 假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人:
 9 fsalary>9999 and fage > 35
10 fsalary>9999 and fage < 35
11 fsalary <9999 and fage > 35
12 fsalary <9999 and fage < 35
13 每种员工的数量;
14 select sum(case when fsalary > 9999 and fage > 35
15 then 1
16 else 0end) as "fsalary>9999_fage>35",
17 sum(case when fsalary > 9999 and fage < 35
18 then 1
19 else 0
20 end) as "fsalary>9999_fage<35",
21 sum(case when fsalary < 9999 and fage > 35
22 then 1
23 else 0
24 end) as "fsalary<9999_fage>35",
25 sum(case when fsalary < 9999 and fage < 35
26 then 1
27 else 0
28 end) as "fsalary<9999_fage<35"
29 from empinfo;

原文地址:https://www.cnblogs.com/anche/p/9038802.html

时间: 2024-09-29 09:05:48

MySql 中关键字 case when then else end 的用法的相关文章

Mysql 中的CASE WHEN 用法

在SELECT语句查询中可以使用CASE WHEN对查询出来的结果,进行一个类似于if else的判断. 具体的用法 1. SELECT a.website_id, b.customer_name, a.website_enddate, c.member_name, d.websitetype_id,            CASE                 WHEN d.websitetype_id=1 THEN 400                WHEN d.websitetype

MySQL中使用SHOW PROFILE命令分析性能的用法整理(配合explain效果更好,可以作为优化周期性检查)

这篇文章主要介绍了MySQL中使用show profile命令分析性能的用法整理,show profiles是数据库性能优化的常用命令,需要的朋友可以参考下 show profile是由Jeremy Cole捐献给MySQL社区版本的.默认的是关闭的,但是会话级别可以开启这个功能.开启它可以让MySQL收集在执行语句的时候所使用的资源.为了统计报表,把profiling设为1 mysql> SET profiling = 1; 之后在运行一个查询 mysql> SELECT COUNT(DIS

MySQL中Identifier Case Sensitivity

在MySQL当中,有可能遇到表名大小写敏感的问题.其实这个跟平台(操作系统)有关,也跟系统变量lower_case_table_names有关系.下面总结一下,有兴趣可以查看官方文档"Identifier Case Sensitivity" In MySQL, databases correspond to directories within the data directory. Each table within a database corresponds to at leas

mysql中授权(grant)和撤销授权(revoke)命令用法

MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器 授权->确定用户是否拥有足够的权限执行查询请求等. 如果认证不成功的话,哪么授权肯定是无法进行的. revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 表 GRANT和REVOKE管理的权限 权限 描述 ALL PRIVILEGES 影响除WITH GRANT OPTION之外的所有权限 ALTER 影响ALTER TABLE命令的使用 ALTER ROUTINE 影响创建存储

mysql中的case when 与if else

大神说:在sql中,能用if else  就不用case  when 下面来看看,具体为什么,没有搞清楚,如果有大神知道的提供下资料: Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 复制代码代码如下: IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3.IF() 的返回值为

SQL中关键字Case的使用

本文非原创 它主要用来简化SQL表达式,在任何允许使用表达式的地方均可使用, 根据条件的不同返回不同的值. 注意:它不能单独执行,只能作为语句的一部分使用, 分为简单 case 表达式和搜索 case 表达式. 1.简单 case 表达式: 它是一个测试表达式与一组简单表达式进行比较,如果和某一个值相等, 则返回对应表达式的值. 语法: case 表达式 / 列名变量 when 测试值1 then 结果表达式1 when 测试值2 then 结果表达式2 …… else 结果表达式 end 例:

mysql中的case when then 的用法

将立立饭饭的性别变更为女 ,烦烦 嗯嗯 问我的性别变更为男 update `table` set sex = ( case when sname in('立立','饭饭') then '女' else '男' end ) 原文地址:https://www.cnblogs.com/lelexiong/p/11325529.html

MySQL中的isnull、ifnull和nullif函数用法

isnull(expr) 如expr为null,那么isnull()的返回值为1,否则返回值为0. mysql>select isnull(1+1); ->0 mysql>select isnull(1/0); ->1 使用=的null值对比通常是错误的. isnull()函数同is null比较操作符具有一些相同的特性.请参见有关is null 的说明. ifnull(expr1,expr2) 假如expr1不为NULL,则IFNULL()的返回值为expr1; 否则其返回值为e

浅谈SQL Server、MySQL中char,varchar,nchar,nvarchar区别

最近一次的面试中,被面试官问到varchar和nvarchar的区别,脑海里记得是定长和可变长度的区别,但却没能说出来.后来,在网上找了下网友总结的区别.在这里做个备忘录: 一,SQL Server中char,varchar,nchar,nvarchar的区别(援引:https://www.cnblogs.com/limeiky/p/5313312.html) 1,定义: char:    固定长度,存储ANSI字符,不足的补英文半角空格. nchar:   固定长度,存储Unicode字符,不