case when用法【MySQL教程】,case when
数据库的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网别的相干文章!