如何正确使用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:缺失表达式

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

相关内容

热门资讯

终于了解“钱潮十三水到底是不是... 家人们!今天小编来为大家解答钱潮十三水透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买...
我来教教您“新猴王拼三张辅助器... 家人们!今天小编来为大家解答新猴王拼三张透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里...
终于懂了“吉林白山麻将辅助器?... 家人们!今天小编来为大家解答吉林白山麻将透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里...
最新引进“笑傲江湖开挂神器?”... 您好:笑傲江湖这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游戏...
今日重磅消息“来趣广西麻将到底... 您好:来趣广西麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款...
今日重磅消息“麻辣竞技究竟有挂... 有 亲,根据资深记者爆料麻辣竞技是可以开挂的,确实有挂(咨询软件无需打开...
终于懂了“南通快胡麻将究竟有挂... 终于懂了“南通快胡麻将究竟有挂吗?”(详细开挂教程)您好,南通快胡麻将这个游戏其实有挂的,确实是有挂...
【第一财经】“么么都莱游戏怎么... 有 亲,根据资深记者爆料么么都莱游戏是可以开挂的,确实有挂(咨询软件无需...
【第一财经】“同城游比鸡真的有... 【第一财经】“同城游比鸡真的有挂吗?”(必胜开挂神器)您好,同城游比鸡这个游戏其实有挂的,确实是有挂...
【第一资讯】“游戏茶苑真的有挂... 有 亲,根据资深记者爆料游戏茶苑是可以开挂的,确实有挂(咨询软件无需打开...