CASE语句的使用方法

article/2025/10/2 21:21:27

CASE语句有两种:

一种是case [column] when,指定了判断条件所在的列。

另一种是case when [column],因为条件在子句中所以能对任意列进行判断。


 本例建立一个员工表,有员工id(id),员工姓名(name)、部门id(department_id)和员工年龄(age))4个字段

再建立一个部门表,记录部门id(id)和部门名称(name)

case [column] when

Case [column] when 类似于switch,限制于对固定1个条字段的条件判断。

SELECT id,CASE department_id WHEN 501 THEN "销售" ELSE "研发" END AS department_nameFROM t_clerk

这个语句的功能是,显示字段id和department_name。当与id同一行的department_id是501时department_name显示“销售”,否则显示“研发”。

【case department_id】:先锁定对`department_id`进行判断。

【when 501】:只指定了一个值,因为是对`department_id`进行判断,所以此处的条件是department_id=501

【THEN “销售”】:对每一行记录进行遍历,若某一行的department_id是501则选择“销售”。(select字段时将显示该字段每一行的值,select一个字符串时则会直接显示这个字符串)

【else “研发”】:同理,如果某一行的department_id不是501则返回“研发”

【end】:是一个case的结束边界。

case when [column]

case when [column]中的column可以是任意列,且应是列中值的条件。

SELECT id,CASEWHEN department_id < 502 THEN "销售"WHEN department_id > 501 THEN "研发"ELSE "无"END DnameFROM t_clerk

可以看出有多个when。对于每个id,会从上到下依次执行每个when,直到满足条件(再往下的when不执行)。

比如,将第一个when设置为永真条件department_id<503

SELECT id,CASEWHEN department_id < 503 THEN "销售"    #永真条件WHEN department_id > 501 THEN "研发"ELSE "无"END DnameFROM t_clerk

则所有department_name值都是销售。

若第一个值有一半的记录满足,而第二条是永真,则一半都是销售(由第一条when判断来赋值),另一半是研发(不触发第一个条件,但是触发第二个条件)。

每个when里的条件可以是不同列的值,比如刚才使用的永真条件可以改为age<200

SELECT id,CASEWHEN age < 200 THEN "销售"   #永真条件WHEN department_id > 501 THEN "研发"ELSE "无"END DnameFROM t_clerk

这样所有人显示的部门名称都是销售。


http://chatgpt.dhexx.cn/article/KMYeQNk6.shtml

相关文章

常用CASE工具介绍 ZZ

常用CASE工具介绍 一&#xff0c;概述  今天, 代码变得日益简单, 在Model的指导下, 思想, 设计, 分析都变得异常重要。企业业务建模工具, 产品非常多, 特别是在MDA日益流行的今天. WorkFlow是典型的业务及流程建模。 二&#xff0c;软件开发CASE工具简介   (一)图稿绘制&…

CASE 工具有哪些

CASE 工具 CASE工具设置的软件应用程序。这使用为自动的SDLC活动。 CASE工具所使用的软件项目经理,分析师和工程师开发的软件系统. 有许多CASE工具做软件开发生命周期的各个阶段,如工具,设计工具,项目管理工具,数据库管理工具,文档工具分析. 为了得到所需的结果,CASE工具…

网络:简述路由算法之动态路由算法

网络&#xff1a;简述路由算法之动态路由算法 在计算机网络中&#xff0c;路由器的一个很重要责任就是要在端对端的节点中找出一条最佳路径出来&#xff0c;通过自己与相邻节点之间的信息&#xff0c;来计算出从自己位置到目的节点之间的最佳线路&#xff0c;这种算法我们可以理…

路由选择算法——链路状态算法

好久没写东西了&#xff0c;好生疏的感觉。。 链路状态算法 这是一种全局式的路由选择算法&#xff0c;也就是说&#xff0c;一个路由器知道到其他路由器的所有链路的状态信息&#xff08;例如某条链路上堵不堵&#xff09;&#xff0c;并且假设这种信息是被量化好了的&#…

示例演示“距离矢量路由算法”工作原理

以下内容摘自刚刚上市&#xff0c;已被纳入全国高校教材系统&#xff0c;并在全国热销、好评如潮的《深入理解计算机网络》新书。 7.5.3 距离矢量路由算法 现代计算机网络通常使用动态路由算法&#xff0c;因为这类算法能够适应网络的拓扑和流量变化&#xff0c;其中最流行的…

距离矢量路由算法

现代计算机网络通常使用动态路由算法&#xff0c;因为这类算法能够适应网络的拓扑和流量变化&#xff0c;其中最流行的两种动态路由算法是“距离矢量路由算法”和“链路状态路由算法”。 距离矢量路由算法&#xff08;Distance Vector Routing&#xff0c;DV&#xff09;是ARPA…

路由算法之距离矢量算法和链路状态算法

我们之前说了&#xff0c;路由器需要对于每一对端端节点都要寻找出一个最佳的路径&#xff0c;比如说最小链路成本的路径。路由算法就是通过自己到相邻节点之间的信息来计算出自己到目的地址的最佳出境线路是哪一条&#xff0c;进而进行转发的一类算法。具有代表性的就是距离矢…

路由算法(网络层)

引言 网络层的主要功能是将数据包从源机器路由到目标机器。在大多数是网络中&#xff0c;数据包需要多跳才能到达目的地。唯一一个值得指出的例外是广播网络&#xff0c;但即使在广播网络中&#xff0c;如果源机器和目标机器不在同一个网络段中时&#xff0c;路由仍然是一个问…

路由算法(凑字)

即最短路径问题&#xff0c;说白了还是算法问题&#xff0c;分类有静态动态路由算法&#xff0c;和全局分散路由算法两种。 **静态&#xff1a;**通过手工配置&#xff0c;路由更新慢&#xff0c;但是优先级高。 **动态&#xff1a;**路由更新快&#xff08;定期更新&#xff0…

最佳路由路径选择算法详解

动态路由协议基于运行特征可分为 距离矢量协议&#xff1a;RIP、EIGRP、BGP 链路状态协议&#xff1a;OSPF、ISIS 通用的路由选择算法 1.最长匹配原则 2.管理距离 3.度量值 路由路径选择的时候&#xff0c;最先看最长匹配原则&#xff0c;然后再看管理距离&#xff0c;最…

路由算法

距离矢量路由算法&#xff08;D-V&#xff09; Distance vector routing:动态路由算法&#xff0c;最初应用于ARPANET&#xff0c;后来应用于因特网的RIP协议&#xff08;路由信息协议) &#xff0c;Cisco的IGRP和EIGRP路由协议也是采用DV这种路由算法的。 基本思想 每个结点…

4.2.1 路由算法与路由协议概述(静态路由和动态路由---距离-向量路由算法---链路状态路由算法、层次路由)

文章目录 0.思维导图1.路由算法分类与路由表2.静态路由和动态路由3.动态路由的两种算法&#xff1a;链路状态路由算法和距离向量路由算法4.层次路由 0.思维导图 1.路由算法分类与路由表 路由器转发分组是通过路由表转发的&#xff0c;而路由表是通过各种算法得到的。从能否随网…

路由算法-链路状态路由

路由算法 网络层的主要功能是将数据包从源机器路由到目标机器。在大多数网络中&#xff0c;数据包需要经过多跳才能到达目的地。路由算法和这些算法所用的数据结构是网络层设计的最主要内容。 可以这样想&#xff0c;路由器内部有两个进程。其中一个进程在每个数据包到达的时候…

路由器路由算法

互联网是由路由器连接的网络组合而成的。为了能让数据包正确达地到达目标主机&#xff0c;路由器必须在途中进行正确地转发。这种向“正确的方向”转发数据所进行的处理就叫做路由控制或路由。 路由器根据路由控制表&#xff08;Routing Table&#xff09;转发数据包。它根据所…

距离向量路由算法

一、距离向量路由算法特点 距离向量路由算法是一种迭代的、异步的和分布式的算法。 &#xff08;1&#xff09;分布式&#xff1a;每个节点都从其直接相连邻居接受信息&#xff0c;进行计算&#xff0c;再将计算结果分发给邻居。 &#xff08;2&#xff09;迭代&#xff1a;计…

分簇路由算法 LEACH算法

1.1 什么是分簇路由算法 在无线传感器网络路由算法中&#xff0c;分簇路由算法具有能量消耗低、稳定性高和扩展性好等优点。分簇路由算法中分簇就是分组&#xff0c;即按照特定的应用要求将网络中的所有节点分成不同的小组&#xff0c;每个小组就是一个簇。每个簇由一个簇头和多…

路由选择算法

网络层的主要功能是将分组从源端机器经选定的路由送到目的端机器。在大多数子网中&#xff0c;分组的整个旅途需经过多次转发。无线广播网络是惟一明显的例外。但即使在这里&#xff0c;如果源端和目的端在同一网络中&#xff0c;仍然有路由选择的问题&#xff1a;路由选择算法…

路由算法入门

路由算法是提高路由协议功能&#xff0c;尽量减少路由时所带来开销的算法。 路由器使用路由算法来找到到达目的地的最佳链路。 网络可以抽象成图来理解 路由算法分类&#xff1a; 静态路由是指由用户或网络管理员手工配置的路由信息。 动态路由是指路由器能够自动地…

路由算法(全网最细)

正文开始 文章目录 正文开始[toc]1.路由算法综述2.静态路由算法3.距离-向量路由算法&#xff08;RIP&#xff09;4.链路状态路由算法(OSPF)5.层次路由 1.路由算法综述 路由器转发分组是通过路由表转发的&#xff0c;而路由表是通过各种算法得到的。主机通常直接与一台路由器相…

计算机网络基础——路由算法

路由控制有各种各样的算法&#xff0c;其中最具代表性的有两种&#xff0c;是距离向量算法&#xff08;Distance-Vector&#xff09;和链路状态算法&#xff08;Link-State&#xff09; 一、距离向量算法 距离向量算法是根据距离&#xff08;代价&#xff09;和方向决定目标网…