本文主要是介绍DB2 的 case when then else end 条件分支的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
两种语法模式:
(1):只有一个分支
CASE
WHEN 条件 THEN 结果1
ELSE 结果2
END
(2):支持多种分支
CASE 表达式1
WHEN 表达式2 THEN 结果1
ELSE 结果2
END
上面的WHEN可以重复多次,
===================
简单示例:
- select
- case when 1 = 1
- then 1
- else 2
- end;
- select
- case 2
- when 1 then 1
- when 2 then 2
- when 3 then 3
- else 4
- end;
============================
下面详细的各举几个例子,这些例子可以用于ESQL和交互式的SQL中
eg1:处理被0除
- SELECT
- CASE
- WHEN fileld1=0 THEN 0
- ELSE fileld2/field1
- END
- FROM FILE
eg2:字段值对应转换
- SELECT ORDNO,CUSNAM,SHIPDATE,CASE
- WHEN SHIPDATE<CURDATE() THEN 'OVERDUE'
- WHEN SHIPDATE=CURDATE() THEN 'PROCESSING'
- WHEN SHIPDATE>;CURDATE() THEN 'ACTIVE'
- END
- FROM FILE
eg3:获取月份的名字:上面的例子
- SELECT ORDNO,CUSNO,
- CASE MONTH(SHIPDATE)
- WHEN '01' THEN 'Jan'
- WHEN '02' THEN 'Feb'
- WHEN '03' THEN 'Mar'
- WHEN '04' THEN 'Apr'
- WHEN '05' THEN 'May'
- WHEN '06' THEN 'Jun'
- WHEN '07' THEN 'Jul'
- WHEN '08' THEN 'Aug'
- WHEN '09' THEN 'Sep'
- WHEN '10' THEN 'Oct'
- WHEN '11' THEN 'Nov'
- WHEN '12' THEN 'Dec'
- END
- FROM FILE
===================
CASE很好用,不仅SELECT可以用,UPATE里面也蛮灵
以上是关于查询的 下面再来个 update的
贴代码直观:
- UPDATE properities
- SET taxrate=
- CASE
- WHEN area<10000 THEN 0.05
- WHEN area<20000 THEN 0.07
- ELSE 0.09
- END
这篇关于DB2 的 case when then else end 条件分支的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!