SQL case when then 的用法
这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。
还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。
下面我们来看一下,使用case函数都能做些什么事情。
一,已知数据按照另外一种方式进行分组,分析。
有如下数据:(为了看得更清楚,我并没有使用国家代码,而是直接用国家名作为primary key)
国家(country)
|
人口(population)
|
中国
|
600
|
美国
|
100
|
加拿大
|
100
|
英国
|
200
|
法国
|
300
|
日本
|
250
|
德国
|
200
|
墨西哥
|
50
|
印度
|
250
|
根据这个国家人口数据,统计亚洲和北美洲的人口数量。应该得到下面这个结果。
洲
|
人口
|
亚洲
|
1100
|
北美洲
|
250
|
其他
|
700
|
想要解决这个问题,你会怎么做?生成一个带有洲code的view,是一个解决方法,但是这样很难动态的改变统计的方式。
假如使用case函数,sql代码如下:
同样的,我们也可以用这个方法来判定工资的等级,并统计每一等级的人数。sql代码如下;
二,用一个sql语句完成不同条件的分组。
有如下数据
国家(country)
|
性别(sex)
|
人口(population)
|
中国
|
1
|
340
|
中国
|
2
|
260
|
美国
|
1
|
45
|
美国
|
2
|
55
|
加拿大
|
1
|
51
|
加拿大
|
2
|
49
|
英国
|
1
|
40
|
英国
|
2
|
60
|
按照国家和性别进行分组,得出结果如下
国家
|
男
|
女
|
中国
|
340
|
260
|
美国
|
45
|
55
|
加拿大
|
51
|
49
|
英国
|
40
|
60
|
普通情况下,用union也可以实现用一条语句进行查询。但是那样增加消耗(两个select部分),而且sql语句会比较长。
下面是一个是用case函数来完成这个功能的例子
这样我们使用select,完成对二维表的输出形式,充分显示了case函数的强大。
三,在check中使用case函数。
在check中使用case函数在很多情况下都是非常不错的解决方法。可能有很多人根本就不用check,那么我建议你在看过下面的例子之后也尝试一下在sql中使用check。
下面我们来举个例子
公司a,这个公司有个规定,女职员的工资必须高于1000块。假如用check和case来表现的话,如下所示
假如单纯使用check,如下所示
女职员的条件倒是符合了,男职员就无法输入了。
转载于:https://blog.51cto.com/848980/1021920
SQL case when then 的用法相关推荐
- SQL case when 2种用法
一. 基本表达式 (case when {条件表达式} then {结果表达式} when {条件表达式} then {结果表达式} when {条件表达式} then {结果表达式} else {结 ...
- SQL CASE WHEN用法
SQL CASE WHEN用法 CASE 可能是 SQL 中被误用最多的关键字之一.虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法.例如,你可以在 WHERE 子句中使用 CASE . ...
- mysql 查询后根据值的不同进行判断与修改,SQL中的条件判断语句(case when zhen)用法
需求: mysql 查询后根据值的不同进行判断与修改 语法结构: SQL中的条件判断语句(case when zhen)用法 SELECT A.品号,属性, CASE ...
- SQL case when 用法
SQL case when 用法 主要是给变量赋值,将连续型变量离散化,主要用SQL中的CASE WHEN 实例: create table table_name_new as ----将时间离 ...
- 30. Spark SQL case when用法:
30. Spark SQL case when用法: https://sparkbyexamples.com/spark-case-when-otherwise-example/ how to wri ...
- SQL CASE When THEN END 行列转换,复杂查询
使用 CASE CASE 函数是特殊的 Transact-SQL 表达式,它允许按列值显式可选值.数据中的更改是临时的,没有对数据进行永久更改.例如,CASE 函数可以在 state 列中有 CA 值 ...
- SQL SERVER 中 GO 的用法2
具体不废话了,请看下文详解. 1 2 3 4 5 6 7 8 9 10 use db_CSharp go select *, 备注=case when Grade>=90 then '成绩 ...
- sql语句 case_使用SQL Case语句查询数据
sql语句 case The Case statement in SQL is mostly used in a case with equality expressions. The SQL Cas ...
- SERVER SQL CASE
SERVER SQL CASE SERVER SQL CASE SERVER SQL CASE Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE sex WHEN ...
最新文章
- Spring Boot 五种热部署方式,极速开发就是生产力!
- 留言板asp mysql_ASP简单入门(制作一个简单的留言板 )
- m 文件 dll matlab 中调用_如何在matlab中调用python程序
- cad方格网高程lisp编程_分享:方格网法土方工程量计算实例例题(疏浚清淤工程)...
- Webservice学习之——即时发布与定制发布
- php获取用户真实IP和防刷机制的实例代码
- ASP.NET2.0 分页控件 PagerPro.dll (1.1.0 最新)
- MFC MessageBox使用教程
- windows下更新pip源
- WebEx Recorder:性能最好的录屏软件
- UltraEdit 注册机使用激活方法:
- iis php一键,phpStudy for IIS (php+IIS一键安装包)下载|phpStudy for IIS (php+IIS一键安装包)官方下载-太平洋下载中心...
- 为知笔记保存为html,为知笔记使用方法
- 鲁迅朱安:留给世纪的背影_拔剑-浆糊的传说_新浪博客
- Dell PowerEdge R740xd解析:服务器只看参数那就错了
- linux 查看CPU核数
- csdn 头衔 创作者 博客专家
- mysql table crashed_快速解决MySQL:Table xxx is marked as crashed and should be repaired五个办法...
- N880E从4.0刷回2.3
- 【49C++项目案例:演讲比赛流程管理系统】
热门文章
- oss导出数据为空时怎么处理_sql数据库导出空库的搜索结果-阿里云开发者社区...
- 最短路径(Dijkstra、Bellman-Ford和SPFA算法)
- c++ map通过值找键与通过键找值得方法(全)
- java使用不存在的字符串_jpa – java.lang.IllegalArgumentException:您试图使用查询字符串中不存在的字符串名称设置参数值...
- 信息系统项目管理师在线考试
- 笔记-项目进度管理-估算活动顺序-依赖关系
- Springboot+Maven在IDEA中配置好Maven后执行Reimport时提示:com.google.inject.internal.Errors.throwCreationExceptio
- JPA中实现单向一对多的关联关系
- 软件需求与分析极简总结
- OpenHarmony的介绍