从品牌网站建设到网络营销策划,从策略到执行的一站式服务
相信很多小伙伴在开发过程中都有用到case when表达式和decode函数,那么会不会有小伙伴和我一样刚开始有很多疑虑,什么情况下用case when,什么情况下用decode呢?两者有什么区别呢?今天小编就带大家细分一下两者的区别:
case when表达式不仅可以等值连接还可以范围判断;decode函数可以等值连接。
这样说大家可能不能理解,举个例子吧,如下;
创建一张表tmp1,列为dept表示部门信息,分别有10,20,30,40,50部门:
创新互联主要从事成都网站制作、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务来凤,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
用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:缺失表达式
本篇文章已经结束了,你学会了吗?如若还有疑问,可留言给小编,看到必回复!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图