case when then else多个条件_sqlserver条件分支case when使用教程

在sqlserver的条件分支case when有两种写法:

1)case 字段 when 值 then 返回值 when 值2 then 返回值2 end

2)case when 条件1 then 返回值1 when 条件2 then 返回值2 end

方法步骤:

1.打开“SQL Server Management Studio”管理工具,创建一张测试表:

CREATE TABLE tblCaseWhen(

Id varchar(40) NOT NULL,

Col1 varchar(50) NULL,

Col2 int NULL,

Col3 varchar(50) NULL,

Col4 varchar(50) NULL

)

12241f6dcb5ee71d6464658c31ccafbf.png

2.往测试表中插入测试数据:

insert into tblCaseWhen(Id, Col1, Col2) values('1', '第1行第2列', 10);

insert into tblCaseWhen(Id, Col1, Col2) values('2', '第2行第2列', 20);

insert into tblCaseWhen(Id, Col1, Col2) values('3', '第3行第2列', 30);

insert into tblCaseWhen(Id, Col1, Col2) values('4', '第4行第2列', 40);

insert into tblCaseWhen(Id, Col1, Col2) values('5', '第5行第2列', 50);

91871c01d29fa668995f98cec147c517.png

3.查询表中插入的测试数据:

select * from tblCaseWhen;

3e5725217ed61163808292a5b2849b58.png

4.使用第一种case when 查询数据改变Col3返回的值,数据库的值不会变。

select Id, Col1, Col2,

Col3 = (case Col2 when 10 then Col2 + 10 when 20 then Col2 + 20 else Col2 + 50 end ), Col4

from tblCaseWhen

601701635d219b7e48619d187038463b.png

5.使用第二种 case when 修改Col4列的值,范围大的条件在前面。

update tblCaseWhen

set Col4 = (case

when Col2 > 10 then '大于10'

when Col2 > 40 then '大于40'

else 'else值'

end)

418b3a2f5c6f4cca19d5f1965d2876c9.png

6.查询修改后的数据,从结果可以看到,匹配到第一个条件后,后面的when就不执行了,所以,范围大的条件不能放在前面。

select * from tblCaseWhen;

508c1c1ed29db803865eca727c68254f.png

7.使用第二种case when,将范围大的条件移到后面,结果就如预期的显示了。

update tblCaseWhen

set Col4 = (case

when Col2 > 40 then '大于40'

when Col2 > 10 then '大于10'

else 'else值'

end)

9e6e15b4a004f6460cfc746ca55eb54b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hashmap value占用空间大小_【Java集合框架002】原理层面:HashMap全解析

一、前言二、HashMap2.1 HashMap数据结构 HashMap线程不安全 哈希冲突2.1.1 HashMap数据结构学习的时候,先整体后细节,HashMap整体结构是 底层数组链表 ,先记住,再开始看下面的HashMap相关知识点:底层数据结构&#…

升级bios_华硕B350PLUS升级BIOS更换AMD 3900X步骤

首先CPU更换看下面这张图,注意CPU上的小三角的位置。这块主板如果BIOS没有升级直接更换AMD 3900X的CPU会有点不亮显示器的问题,所以下面讲下华硕B350PLUS这块主板是如何更新到最新的BIOS驱动的(需要在原来老的CPU基础上先升级,升级完再更换39…

实体类 接口_spring-boot-route(五)整合Swagger生成接口文档

目前,大多数公司都采用了前后端分离的开发模式,为了解决前后端人员的沟通问题,后端人员在开发接口的时候会选择使用swagger2来生成对应的接口文档,swagger2提供了强大的页面调试功能,这样可以有效解决前后端人员沟通难…

bootstrap-table 新增可编辑行_现代Web开发堆栈工具DevExtreme 新增Gantt组件,助力项目管理...

点击“了解更多”获取DevExpress DevExtreme v19.2正式版下载DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应…

关抢占 自旋锁_互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景

前言生活中用到的锁,用途都比较简单粗暴,上锁基本是为了防止外人进来、电动车被偷等等。但生活中也不是没有 BUG 的,比如加锁的电动车在「广西 - 窃格瓦拉」面前,锁就是形同虚设,只要他愿意,他就可以轻轻松…

dvwa详解_DVWA(六):XSSReflected 反射型XSS全等级详解

XSS 概念:由于web应用程序对用户的输入过滤不严,通过html注入篡改网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。XSS类型:Reflected(反射型):只是简单的把用户输入的数据反…

直线的端点画垂线的lisp_【以课说法】线段、射线、直线

课例概况课例点晴你的课堂是碎片化的知识教学,还是结构化的问题探究?如何把碎片化的知识教学变成结构化的问题探究?实施路径就是问题串,用问题串统整知识点;围绕问题串,从问题引发、问题探究,直…

ehchache验证缓存过期的api_Ehcache缓存配置

Cache的配置很灵活,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。你可以将Cache的配置从代码中剥离出来,也可以在使用运行时配置,所谓的运行时配置无非也就是在代码中…

alert 回调_JavaScript中到底什么时候回调函数Callback

什么是回调函数Callback简单的理解:回调函数是在另一个函数执行完毕后执行的函数 - 因此名称为call back。复杂的理解:在JavaScript中,函数是对象。因此,函数可以将函数作为参数,并且可以由其他函数返回。执行此操作的…

finereport文本框如何实现多值查询_如何实现参数级联查询

参数级联查询是查询控件之间的一种互动方式,比如在某个下拉框选定选项后,另一个下拉框里的选项范围会随之变化。润乾报表提供了多种编辑风格,每种编辑风格都有丰富的属性,以此为基础实现参数级联查询也很简单。下面就通过一个例子…

【HDU - 5015 】233 Matrix (矩阵快速幂)

题干: In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233333 ... in the same meaning. And here is the question: Suppose we have a matrix called 233 matrix. In the first line, it would be 233, 233…

mysql datetime month不走索引_like百分号加前面一定不走索引吗?一不小心就翻车,关于mysql索引那些容易错的点...

like百分号加前面一定不走索引吗?正常来讲,我们都知道在mysql的like查询中,百分号加在关键词后面是走索引的,比如 select * like "张三%",而百分号在前面是不走索引的,比如 select * like "…

ACM竞赛、数论内容常用的定理(求解(a/b)%c,乘法逆元,费马小定理)

如果b与c互素,则(a/b)%ca*b^((c)-1)%c其中是欧拉函数。或者(a/b)%ca*b^(c-2)%c 如果b与c不互素,则(a/b)%c(a%bc)/b 对于b与c互素和不互素都有(a/b)%c(a%bc)/b成立 乘法逆元用扩展欧几里得定理: 例题:ZOJ - 3609 题干&#xf…

自定义菜单url不能带_微服务架构【SpringBoot+SpringCloud+VUE】五 || 实战项目微信公众号自定义开发...

本章主要讲解微信公众号自定义菜单、微信网页开发、模板消息推送等功能的实现;发福利了,下方关注公众号,就能免费获取项目源码1、自定义菜单开发前需要了解以下几点:1、微信公众号的自定义菜单最多包括3个一级菜单,每个…

C语言编程中关于负数的%运算的判定。

如果 % 两边的操作数都为正数,则结果为正数或零;如果 % 两边的操作数都是负数,则结果为负数或零。C99 以前,并没有规定如果操作数中有一方为负数,模除的结果会是什么。C99 规定,如果 % 左边的操作数是正数&…

无数种求逆元的方法总结

乘法逆元 对于缩系中的元素,每个数a均有唯一的与之对应的乘法逆元x,使得ax≡1(mod n) 一个数有逆元的充分必要条件是gcd(a,n)1,此时逆元唯一存在 逆元的含义:模n意义下,1个数a如果有逆元x,那么除以a相当于…

python两个元组相加_《第5章 Python 列表与元组》5.1.3 序列相加(Adding)!

《高中信息技术 Python编程》 教学案《第5章 Python 列表与元组》 5.1.3 序列相加(Adding)!06:151 #使用加号可以进行序列的连接操作,输入如下:2 >>>[1,2,3][4,5,6]3 [1,2,3,4,5,6]4 >>>a[1,2]5 >>>b[5,6]6 >&…

mysql 按时间查询优化_mysql如何按时间查询优化

mysql按时间查询优化的方法:1、【register_time】字段是datetime类型,转换为日期再匹配,需要查询出所有行进行过滤;2、可以利用在【register_time】字段上建立索引,查询极快。本教程操作环境:windows7系统、…

angularjs 开发流程_超级棒的30款web前端开发工具汇总,一定要收藏!

我们与企业内部的Web开发团队进行了很多次交流,研究了很长时间,最后将Debug工具与Web前端开发工具整理汇总在了一起,这些工具对每个Web开发人员都非常有用。这些工具将使您的工作更加轻松,特别是如果您是Web开发人员,W…

linux mysql io压力大_MySQL 调优基础(四) Linux 磁盘IO_MySQL

1. IO处理过程磁盘IO经常会成为系统的一个瓶颈,特别是对于运行数据库的系统而言。数据从磁盘读取到内存,在到CPU缓存和寄存器,然后进行处理,最后写回磁盘,中间要经过很多的过程,下图是一个以write为例的 Li…