oracle函数之case when ...then ...else...end的使用方法

case when...then...else...end的作用和decode作用相同,废话不多说,先举一个例子:

select
SUM(CASE  WHEN ','||R1.CONCLUSION||',' LIKE '%,1,%' THEN  1 else 0 END) CONCLUSION_1,
 SUM(CASE  WHEN ','||R1.CONCLUSION||',' LIKE '%,2,%' THEN  1 else 0 END) CONCLUSION_2

from TASK_RECORD R1

  上面的字段中TASK_RECORD表中字段 CONCLUSION的存储是以1,2,3...,n这样的方式存储,先在我要统计含有1,2...,n每一个有多少条记录。因为decode方法中判断的值必须是一个确定的值,所以不能使用此方法来解决,想要解决此问题必须使用模糊查询,只要有该标号的值就加1(+1)的方式;

总结:此方法比起decode要复杂,并且没有那么美观,不同的是该方法支持用判断条件和模糊查询等。

猜你喜欢

转载自logking2340.iteye.com/blog/2158639