CASE函数

article/2025/8/5 9:42:49

CASE函数

是一种多分支的函数,可以根据条件列表的值返回多个可能的结果表达式中的一个。
可用在任何允许使用表达式的地方,但不能单独作为一个语句执行。
分为:
简单CASE函数
搜索CASE函数

简单 CASE函数

1

2

3

4

5

6

CASE 测试表达式

WHEN 简单表达式1 THEN 结果表达式1

WHEN 简单表达式2 THEN 结果表达式2 …

WHEN 简单表达式n THEN 结果表达式n

ELSE 结果表达式n+1 ]

END

计算测试表达式,按从上到下的书写顺序将测试表达式的值与每个WHEN子句的简单表达式进行比较。
如果某个简单表达式的值与测试表达式的值相等,则返回第一个与之匹配的WHEN子句所对应的结果表达式的值。
如果所有简单表达式的值与测试表达式的值都不相等,
若指定了ELSE子句,则返回ELSE子句中指定的结果表达式的值;
若没有指定ELSE子句,则返回NULL。

例、 查询班级表中的学生的班号、班名、系号和班主任号,并对系号作如下处理:
当系号为1时,显示 “计算机系”;
当系号为2时,显示 “软件工程系”;
当系号为3时,显示 “物联网系”。

1

2

3

4

5

6

7

SELECT 班号 ,班名,

CASE 系号

WHEN THEN '软件工程系'

WHEN THEN '计算机系'

WHEN THEN '物联网系'

END AS 系号,班主任号

FROM 班级表

搜索CASE函数

1

2

3

4

5

6

CASE

WHEN 布尔表达式1 THEN 结果表达式1

WHEN 布尔表达式2 THEN 结果表达式2 …

WHEN 布尔表达式n THEN 结果表达式n

ELSE 结果表达式n+1 ]

END

按从上到下的书写顺序计算每个WHEN子句的布尔表达式。
返回第一个取值为TRUE的布尔表达式所对应的结果表达式的值。
如果没有取值为TRUE的布尔表达式,
则当指定了ELSE子句时,返回ELSE子句中指定的结果;
如果没有指定ELSE子句,则返回NULL。

例、用搜索CASE来做:

1

2

3

4

5

6

7

SELECT 班号 ,班名,

CASE

WHEN 系号=1 THEN '软件工程系'

WHEN 系号=2 THEN '计算机系'

WHEN 系号=3 THEN '物联网系'

END AS 系号,班主任号

FROM 班级表

例、查询“M01F011”号课程的考试情况,列出学号、课程号和成绩,同时将百分制成绩显示为等级。

1

2

3

4

5

6

7

8

9

10

SELECT 学号,课程号,

CASE

WHEN 成绩 >= 90 THEN '优'

WHEN 成绩 BETWEEN 80 AND 89 THEN '良'

WHEN 成绩 BETWEEN 70 AND 79 THEN '中'

WHEN 成绩 BETWEEN 60 AND 69 THEN '及格'

WHEN 成绩 <60 THEN '不及格'

END 成绩

FROM 成绩表

WHERE 课程号 = 'M01F011'

CASE函数(续)

例、统计每个班男生和女生的数量各是多少,统计结果的表头为,班号,男生数量,女生数量。

1

2

3

4

SELECT 班号,

COUNT(CASE WHEN 性别=‘男’ THEN ‘男’ END) 男生数,

COUNT(CASE WHEN 性别=‘女’ THEN ‘女’ END) 女生数

FROM 学生表 GROUP BY 班号

例、判断成绩的等级,85-100为“优”,70-84为“良”,60-69为“及格”,60以下为“不及格”,并统计每一等级的人数。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

SELECT

CASE

WHEN GRADE BETWEEN 85 AND 100 THEN '优'

WHEN GRADE BETWEEN 70 AND 84 THEN '良'

WHEN GRADE BETWEEN 60 AND 69 THEN '及格'

ELSE '不及格'

END 等级, COUNT(*) 人数

FROM SC

GROUP BY

CASE

WHEN GRADE BETWEEN 85 AND 100 THEN '优'

WHEN GRADE BETWEEN 70 AND 84 THEN '良'

WHEN GRADE BETWEEN 60 AND 69 THEN '及格'

ELSE '不及格'

END

整理

SELECT
    NAME '英雄',
    CASE NAME
        WHEN '德莱文' THEN
            '斧子'
        WHEN '德玛西亚-盖伦' THEN
            '大宝剑'
        WHEN '暗夜猎手-VN' THEN
            '弩'
        ELSE
            '无'
    END '装备'
FROM
    user_info;

 

其实就是省略了AS起别名 


http://chatgpt.dhexx.cn/article/61pFMh3T.shtml

相关文章

sql语句之case函数的用法

简单case函数语法&#xff1a; 是一种多分支的函数&#xff0c;可以根据条件列表的值返回多个可能的结果表达式中的一个。&#xff08;类似于if,else&#xff09; 简单 CASE函数&#xff1a; 计算测试表达式&#xff0c;按从上到下的书写顺序将测试表达式的值与每个WHEN子句的…

【MYSQL快速入门】case函数

case函数&#xff1a; 是一种多分支的函数&#xff0c;可以根据条件列表的值返回多个可能的结果表达式中的一个。 简单case函数&#xff1a; case 测试表达式 when 简单表达式1 then 结果表达式1 when 简单表达式2 then 结果表达式2.. when 简单表达式3 then 结果表达式n [e…

三分钟搞懂SQL的Case函数

文章标题 前言一: 使用语法作用一: 结合分组统计数据作用二: 分条件更新字段值作用三: 检查表中字段值是否一致作用四: 行转列(重点-面试常见)五:普通case函数和搜索case函数的区别六:总结 温馨提示: 本文大约1832字,阅读完大概需要2-3分钟,希望您能耐心看完,倘若你对该知识点已…

域名泛解析设置方法

域名泛解析是指&#xff1a;利用 *&#xff08;星号&#xff09;来做次级域名以实现所有的次级域名均指向同一 IP 地址。 例如你的域名是 a.com,设置泛解析&#xff08;.a.com&#xff09;后&#xff0c;所有该域名下的次级域名&#xff08;如 b.a.com&#xff09;都将指向与 a…

服务器泛解析网站,网站域名解析教程

我们这篇文章就讲一下域名解析的教程&#xff0c;在讲之前先介绍一些基础的概念&#xff0c;对域名解析过程有一个理解。 下面这段看不明白没关系&#xff0c;看不懂直接不看&#xff0c;跟着下面教程操作就可以了。 我们都知道&#xff0c;访问一个网站输入域名&#xff0c;比…

linux系统如何绑定域名解析,Linux系统网站如何站点部署域名泛解析绑定

做过站群或绑定多个二级域名的技术人员都知道&#xff0c;在windows下如果可绑定多个二级域名&#xff0c;一般都会用到默认站点的空主机头&#xff0c;只有绑定了80端口的空主机头&#xff0c;才可实现多个二级域名的绑定&#xff0c;或指定目录或301转发。但是&#xff0c;服…

Nginx服务器php自动进行二级域名泛解析

Nginx服务器php自动进行二级域名泛解析: 目录&#xff1a;想要实现多用户博客系统泛解析二级域名【以baidu.com为例】 例如&#xff1a;用户qulinke1230注册了一个账号&#xff0c;那么他可以通过【qulinke1230.baidu.com】格式访问他的博客 实现&#xff1a; 1、首先要在你的域…

子域名爆破的泛解析问题

字节跳动——渗透测试实习生面试题&#xff1a;信息收集如何处理子域名爆破的泛解析问题&#xff1f; 一、什么是域名泛解析 利用通配符* &#xff08;星号&#xff09;来做次级域名以实现所有的次级域名均指向同一IP地址。在域名前添加任何子域名&#xff0c;均可访问到所指向…

域名泛解析什么意思?怎么设置?

域名泛解析什么意思 在域名前添加任何子域名&#xff0c;均可访问到所指向的网站。也就是客户的域名yfi6.com之下所设的*.yfi6.com全部域名均可访问。 域名泛解析怎么设置 泛域名解析是指将*.域名解析到同一IP。 泛域名解析和域名解析有何不同&#xff1f; 泛域名解析是指&a…

域名泛解析设置

接前一篇《MVC实现动态二级域名》&#xff0c;前面我们说道MVC如何实现动态二级域名&#xff0c;其中也涉及到DNS服务器&#xff0c;也要做相应的泛域名解析设置。所以我在这里&#xff0c;就来说道说道泛域名解析是怎么回事。 1、什么是泛域名解析 泛域名解析是指将*.域名解析…

域的泛解析到网站服务器,什么是域名泛解析 怎么设置域名泛解析

很多建网站新手可能是第一次听说“域名泛解析”&#xff0c;因为在学做网站论坛的建站基础知识中&#xff0c;只说了“域名解析”&#xff0c;就是将自己的网站域名解析到网站空间上&#xff0c;产生关联。那么“域名泛解析”与“域名解析”是不是同一个东东呢&#xff1f; 什么…

工具开发 | 子域名爆破的泛解析问题

声明&#xff1a;本人坚决反对利用文章内容进行恶意攻击行为&#xff0c;一切错误行为必将受到惩罚&#xff0c;绿色网络需要靠我们共同维护&#xff0c;推荐大家在了解技术原理的前提下&#xff0c;更好的维护个人信息安全、企业安全、国家安全。 一、什么是域名泛解析 域名泛…

如何设置域名泛解析及解决恶意泛域名解析的方法

最近看到很多的博主和站长都发帖讨论关于泛域名解析的问题&#xff0c;也看到过有不少的网站被人做了恶意泛域名解析&#xff0c;本来没打算再研究这个问题&#xff0c;可今天发现公司的一个企业网站也被恶意泛域名解析了&#xff0c;搞了半天&#xff0c;总算把问题给解决了。…

python基础之输入输出语法

博主简介&#xff1a;原互联网大厂tencent员工&#xff0c;网安巨头Venustech员工&#xff0c;阿里云开发社区专家博主&#xff0c;微信公众号java基础笔记优质创作者&#xff0c;csdn优质创作博主&#xff0c;创业者&#xff0c;知识共享者,欢迎关注&#xff0c;点赞&#xff…

python正确的输入语句_python怎么让输入语句

展开全部 1.语句 1.1 语句和表达式有什么区32313133353236313431303231363533e58685e5aeb931333365633936别呢&#xff1f;表达式就是某件事情&#xff0c;而语句是做某件事情&#xff08;即告诉计算机做什么&#xff09;。比如2*2是4&#xff0c;而print2*2则是打印4 1.2 if…

python循环语句打印输出1-10_python 笔记(变量,输入输出,条件语句,循环语句)...

首先了解 python支持一下几种运算符: 算术运算符: 赋值运算符: 复合赋值运算符: 变量 简单的说,变量就是编程中最基本的存储单位,变量会暂时性存储你进去的东西,例如:

python输入输出语句格式化输出字符串

python-输入输出-格式化输出字符串 输入3行字符串&#xff0c;然后对其按照说明进行格式化输出 输入格式: 第1行&#xff1a;一个浮点数字符串 第2行&#xff1a;一个整数字符串 第3行&#xff1a;一个非数值型字符串 输出格式: 对浮点数字符串: 第1行&#xff1a; 保留2位小…

python的选择语句if语句,Python的输入和输出函数(python基础学习5)

python的选择语句if语句&#xff0c;Python的输入和输出函数 if语句1&#xff09;第一种2&#xff09;第二种3&#xff09;第三种 python键盘输入屏幕输出输入input()函数 输出print&#xff08;&#xff09;函数1&#xff09;非格式化输出2&#xff09;格式化输出--%3&#xf…

在python中常用的输入输出语句分别是_python中输入和输出语句的基本使用

一、 input输入函数 input函数:获取用户输入,保存成一个字符串。重要的话,说两遍,input函数的返回值是一个字符串类型。哪怕你输入的是个数字1,返回给你的只会是字符串“1”,而不是 整数1。下面是一些简单的展示例子:>>> inp = input("please input your…