在SQL中,“Case When”语句用于选择判断,在执行时先对条件进行判断,然后根据判断结果做出相应的操作;语法“CASE 字段 WHEN 条件1 THEN 操作1 WHEN 条件2 THEN 操作2...ELSE 操作n END;”。

本教程操作环境:windows7系统、Microsoft SQL Server 2016版、Dell G3电脑。
SQL中case when的用法
case when类似于编程语言中的if else判断、switch case语句。该语句执行时先对条件进行判断,然后根据判断结果做出相应的操作。
Case具有两种格式:简单Case函数和Case搜索函数。
简单Case函数:
CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘0’ THEN ‘女’ ELSE ‘其他’ END
Case搜索函数:
CASE WHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘0’ THEN ‘女’ ELSE ‘其他’ END
显然,简单Case函数胜在简洁,但是它只适用于这种单字段的单值比较,而Case搜索函数的优点在于适用于所有比较的情况。
还有一个需要注意的问题,Case函数在满足了某个符合条件后,剩下的条件将会被自动忽略,因此,即使满足多个条件,执行过程中也只认第一个条件。
(PHP中文网,有大量免费的SQL教程,欢迎大家学习!)
在使用 CASE WHEN时,可以把它当作一个逻辑上的匿名字段,字段值根据条件确认,在需要使用字段名时可以是用 as来定义别名。这么说还很抽象,看看下面 CASE WHEN的使用案例就清楚了。
使用场景
1、可以将已知数据按照某种方式进行分组,分析。

根据这个国家人口数据,统计亚洲和北美洲的人口数量。使用如下 SQL:
人声去除
用强大的AI算法将声音从音乐中分离出来
23
查看详情
SELECT CASE country WHEN '中国' THEN '亚洲' WHEN '印度' THEN '亚洲' WHEN '日本' THEN '亚洲' WHEN '美国' THEN '北美洲' WHEN '加拿大' THEN '北美洲' WHEN '墨西哥' THEN '北美洲' ELSE '其他' END as '洲' , SUM(population) as '人口' FROM test GROUP BY CASE country WHEN '中国' THEN '亚洲' WHEN '印度' THEN '亚洲' WHEN '日本' THEN '亚洲' WHEN '美国' THEN '北美洲' WHEN '加拿大' THEN '北美洲' WHEN '墨西哥' THEN '北美洲' ELSE '其他' END;

这里的两个CASE WHEN都相当于一个字段,不过值得一提的是,第二个CASE WHEN 的THEN值并不用写明是什么洲,它只是用于将记录进行分组,所以THEN后面的值只有能区分这三种记录就行,GROUP BY也可以写成:
GROUP BY CASE country WHEN '中国' THEN 0 WHEN '印度' THEN 0 WHEN '日本' THEN 0 WHEN '美国' THEN 1 WHEN '加拿大' THEN 1 WHEN '墨西哥' THEN 1 ELSE 2 END;
2、用一个SQL语句完成不同条件的分组。
有如下数据:

用Case函数来完成按照国家和性别进行分组。使用如下SQL:
SELECT country, SUM( CASE WHEN sex = '1' THEN population ELSE 0 END ), --男性人口 SUM( CASE WHEN sex = '2' THEN population ELSE 0 END ) --女性人口 FROM Table_A GROUP BY country;
得到如下结果:

就第一个CASE WHEN讲解:
CASE WHEN sex = '1' THEN population ELSE 0 END
当记录的sex为1时,这个字段的值为记录的population值,否则为0,因此能计算出一个国家的男性人口。
更多SQL等编程入门教程,请持续关注PHP中文网!!
以上就是SQL中Case When的用法的详细内容,更多请关注其它相关文章!
# 中国
# 网站建设团队多少钱
# 阜阳网站建设专业机构
# 铜仁大数据网站建设渠道
# 白杨网站建设
# 推广创业项目的网站
# seo优化提升排名seo公司
# 北京seo哪家服务好
# 个人网站建设设计总结
# 手绘图片做视频网站推广
# 推广网站java优化
# 第一个
# sql
# 美国
# 日本
# 中文网
# 印度
# 加拿大
# 墨西哥
# 亚洲
# 北美洲
# 用法
# when
# case
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
支付宝网页版在线入口 支付宝官网电脑登录入口
广州地铁app准妈咪徽章领取方法
PHP安全加载非公开目录图片与动态内容类型处理指南
《sketchbook》选中部分图案移动方法
被称为海蜈蚣的海洋动物是
网站体验不好=浪费钱:如何提升-用户体验效果差
如何外贸网站设计-能留住客户提升用户体验!
VS Code快捷键when上下文子句的妙用
t3出行如何使用微信支付
一加 Ace 6V 快充无法启用_一加 Ace 6V 充电优化
使用VS Code作为你的个人知识管理系统
微博网页版入口链接 微博网页版在线互动平台
PHP页面重载时变量值不重置的实现方法
如何解决Casbin日志与应用日志不统一的问题,使用casbin/psr3-bridge实现无缝集成
uc浏览器官网网页版使用 uc浏览器官网免费在线首页
Lar*el 关联查询:同时筛选父表与子表数据的高效策略
Flexbox布局中Stencil组件宽度不显示问题解析与:host尺寸控制
如何在CSS中清除浮动解决背景颜色不包裹内容问题_clear after技巧
《环球网校》设置报考省市方法
PHP魔术方法__set与__isset:设计考量、性能权衡与静态分析的视角
《新三国志曹操传》游历事件袁尚突围攻略
Excel如何制作月度销售统计图_Excel动态图表制作与控件应用
怎么恢复删除的电脑文件_数据恢复软件使用教程
C++如何实现单例模式_C++线程安全的单例模式写法
解决 Vue 3 组件未定义错误:理解 createApp 与根组件的正确使用
海棠阅读网页版_进入海棠网页版在线阅读中心
路由器DNS怎么设置最快 优化DNS提升上网速度教程
realme 10 Pro息屏方案_realme 10 Pro省电策略
如何在Podman容器中运行Composer_Docker替代品Podman的PHP与Composer容器化实践
《幻兽帕鲁》手游帕鲁捕捉技巧分享
Pandas中基于动态偏移量实现DataFrame列值位移的策略
电脑的“恢复环境(WinRE)”找不到怎么办_Windows系统恢复环境重建【高级修复】
鸿蒙单条备忘录如何加密
Go反射进阶:访问内嵌结构体中的被遮蔽方法
Python类装饰器动态修改方法时的类型提示:Mypy插件实现精确静态分析
植物大战僵尸95版游戏版下载_植物大战僵尸95版游戏版安装指南
Lar*el Eloquent中通过Join查询关联数据表:解决多行子查询问题
《饿了么》拼好饭点外卖教程2025
Dash应用中自定义HTML页面标题与网站图标(F*icon)的实用指南
蛙漫2(台版)正版官网 2025免费网页版分享
byrutor直接访问入口 byrutor官方游戏库
Google Cloud Functions 时区处理指南:理解与最佳实践
酷狗音乐多音轨设置教程
免费占卜在线神算_免费占卜手机神算
解决CSS background 属性中 cover 关键字的常见误用
C++怎么解决数值计算中的精度问题_C++浮点数误差与数值稳定性分析
宝妈做视频号该写什么标签话题?宝妈关注的话题有哪些?
C++ static关键字作用_C++静态成员变量与静态函数
如何查询个人病历记录
C#中的Record类型有什么优势?C# 9新特性Record与Class的用法区别
2020-02-18
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。