如何正确使用case when表达式 和 decode函数?
admin
2023-02-07 15:40:05
0
    相信很多小伙伴在开发过程中都有用到case when表达式和decode函数,那么会不会有小伙伴和我一样刚开始有很多疑虑,什么情况下用case when,什么情况下用decode呢?两者有什么区别呢?今天小编就带大家细分一下两者的区别:

    case when表达式不仅可以等值连接还可以范围判断;decode函数可以等值连接。

    这样说大家可能不能理解,举个例子吧,如下;
    创建一张表tmp1,列为dept表示部门信息,分别有10,20,30,40,50部门:

如何正确使用case when表达式 和 decode函数?

    用case when表达式判断,如果部门信息为10,则判断为A,部门信息为20,则判断为B,其他部门信息判断为C:
    select case when dept = 10 then 'A'
                      when  dept = 20 then 'B'
                      else 'C'
    from tmp1;
    或者:
    select case  dept  when  10 then 'A'
                        when  20 then 'B'
                        else 'C'
    from tmp1;
    用decode函数判断,如果部门信息为10,则判断为A,部门信息为20,则判断为B,其他部门信息判断为C:
    select decode(dept,10,'A',20,'B','C') from tmp1;

    而如果想判断部门信息为10或20时,判断为'A',部门信息为30或40时,判断为'B',其他则判断为'C'。这时只能用case when表达式:
    select  case when dept between 10 and 20 then 'A'
                            when dept between 30 and 40 then 'B'
                            else 'C'
                            end 
    from tmp1;

 注:这时sql不能再写为
    select  case dept when between 10 and 20 then 'A'
                            when between 30 and 40 then 'B'
                            else 'C'
                            end 
    from tmp1;
    这时会报错:  ORA-00936:缺失表达式

本篇文章已经结束了,你学会了吗?如若还有疑问,可留言给小编,看到必回复!

相关内容

热门资讯

男子在采血站采血后口吐白沫、神... 7月23日,山西广播电视台《慧帮忙》栏目报道“我弟弟在霍州康宝生物科技采血站采血后口吐白沫、神志不清...
“安全先生”,不安全了 当地时间7月17日凌晨,以色列第25届议会以62票赞成、0票反对通过一项有关政党经费法的相关修正案,...
“AI科学家”,实验效率直接“... □ 本报记者 洪叶 徐春晖 窗明几净的空间里没有科研人员,取而代之的是一排充满科技感的自动化岛台,背...
云南一女子电脑屏内现“蚂蚁窝”... 大家平时清洁电脑显示屏吗? 你见过显示屏里进蚂蚁吗? 据媒体报道,云南临沧一名女子近期发现,自己使...
便携脑电采集新品发布,脑电信号... 一根发带将一个比硬币略大的采集设备贴在额头,就能实现脑电信号采集,脑机接口创新企业神舞科技7月22日...
工业和信息化部:依托标准牵引智... 日前,在北京举办的《人工智能 智能体互联》系列标准应用推进专题会上,工业和信息化部科技司副司长甘小斌...
原创 强... 进入下半年,子系品牌新一轮旗舰和中端性能机开始密集预热,近期更是有博主连续放出两条关键信息,分别指向...
“文学超界面”探索数字时代人文... 来源:新华网 当严肃文学的深厚内核遇见人工智能生成内容(AIGC)的影像创造力,会碰撞出怎样的火花...
以防长称已为应对伊朗局势做好“... △以色列国防部长卡茨(资料图)当地时间23日,据以色列方面消息,以色列国防部长卡茨当天表示,鉴于当前...
美参议院否决限制特朗普对伊战争... △美国国会(资料图)当地时间23日,美国参议院以49票对47票的表决结果,否决了旨在限制特朗普对伊朗...