当前位置:首页 > MySQL教程 > 正文内容

case when用法【MySQL教程】,case when

搜教程4年前 (2019-12-01)MySQL教程182

数据库的case when关键字,实在就是类似于if,else if,else的这一种花样,是猎取推断前提的一种体式格局

在存储历程中和日常平凡写的sql其语法花样是基础一致的,case when的用法挪用也是。

先行举例:

select qzh from ywda_swjg_qzh_dz
where swjg = (
select
case when substr('11101823000'),0,7) = '1110182'
then substr('11101960000',0,8) || '000'
else substr('1110196000',0,7) || '0000'
end
swjgdm from ywda_swjg_qzh_dz
where a.swjg_dm = b.swjg_dm);

case when 不只能够在查询的效果中举行运用,一样能够在where前提以后做推断前提运用。

这一条sql把两种状况都席卷在其中了,固然我们也能够不必在后方的where前提中到场select,如:

select qzh from ywda_swjg_qzh_dz
where swjg =
case when substr('11101823000'),0,7) = '1110182'
then substr('11101960000',0,8) || '000'
else substr('1110196000',0,7) || '0000'
end;

这类花样直接用case when 的体式格局效力一定照样比较高的。

注重:case when必需合营then 以及end来举行运用。

固然,我的存储历程没有这么写,本日老大发话,说不必太担任,直接if,else这类花样誊写就能够了。

存储历程的if,else和前背景用的if以及else花样照样有点不一样的,公司没外网,纯手打,咱就不贴java代码了,直接上存储历程的部分内容。

if substr(AVC_QXSWJG,0,8) = '11100006' or substr(AVC_QXSWJG,0,7) = '1110182' then
select qzh into avc_qch from ywda_swjg_qzh_dz where swjg_dm = substr(avc_qxswjg,0,8) || '000';
elsif    前提(不加括号) then
................................sql省略.........................................
else
.................................sql省略.......................................
end if;
sql完毕。

注重,逻辑运算符在这里采纳sql的逻辑运算符,即and,or这一类。

上方写的“||”是在字段后方追加字符串,不是逻辑或,要注重。

在if完毕以后,一定要加end if来示意当前if完毕。

引荐教程:mysql视频教程

以上就是case when用法的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16250.html

标签: case when
分享给朋友:

“case when用法【MySQL教程】,case when” 的相关文章

MySql中运用Group By对多个字段举行分组的要领【MySQL教程】,MySql,Group,字段

这篇文章重要引见了MySql Group By对多个字段举行分组的完成要领,须要的朋侪能够参考下 相干mysql视频教程引荐:《mysql教程》 在日常平凡的开辟使命中我们常常会用到MYSQL的GROUP BY分组, 用来猎取数据表中以分组字段为根据的统计数据。比方有一个门生选课表,表构造以...

CREATE DATABASE语句诠释【MySQL教程】,DATABASE,CREATE,解释

本文为mariadb官方手册:CREATE DATABASE的译文。 语法 CREATE [OR REPLACE] {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_spec...

mySQL用代码增加表格内容和删除数据要领【MySQL教程】,mySQL,内容,表格

经由过程代码对表格内容操纵: 1、增加数据 insert into Info values('p009','张三',1,'n001','2016-8-30 12:9:8') ; 给特定的列增加数据insert into Info (code,name) values('p010',...

关于Mysql事务性【MySQL教程】,Mysql,事务性,关于

1》事件指的是什么?    事件能够看作一个营业逻辑处置惩罚单位,这个单位要么执行,要么不执行; 2》ACID的准绳:   (1)原子性(Automicity)   (2)一致性(Consistency)     A 账户有3000块, B 账户2000快,     --A -...

mysql关于加密解密的函数【MySQL教程】,mysql,加密解密,函数

Mysql函数 select password(‘123456’); #加密暗码 select md5(‘123456’); #md5加密暗码(貌似mysql数据库雷同暗码每次加密后的md5字符串都是一样 select AES_ENCRYPT('123456','key') ; #加密...

存储历程的定义、修正和删除的操作方法【MySQL教程】,删除,修改,定义

1.存储历程的分类 体系存储历程 当地存储历程(用户自定义) 暂时存储历程(部分【#】、全局【##】暂时存储历程) 2.建立存储历程 --选出价钱区间的商品信息create procedure sp_goods_price@minprice float ,@maxpr...