码迷,mamicode.com
首页 > 数据库 > 详细

oracle:case when 语句的区间用法

时间:2015-03-17 11:51:55      阅读:1199      评论:0      收藏:0      [点我收藏+]

标签:

在练习case when 语句时,碰到一个例子,结果答案根本就不对,语法就通不过,开始想着是不是case 只能是一个固定的取值,毕竟例子内给的都是case是个固定的值,后来网上查了好久才发现还有区间的用法,下面附带例子

背景是Scott用户下面的EMP表(oracle创建时默认自带的)

算出每个部门,每个职位的平均工资和平均奖金(平均值包括没有奖金)如果平均奖金大于300,显示‘奖金不错‘,如果平均奖金100到300,显示‘奖金一般‘,如果平均奖金小于100,显示“基本没有奖金”,按部门编号降序,平均工资降序排列
select deptno,job,avg(sal)平均工资,avg(nvl(comm,0))平均奖金,case when avg(nvl(comm,0))>=300 then ‘奖金不错‘ avg(nvl(comm,0))>100 and avg(nvl(comm,0))<300 then ‘奖金一般‘ else ‘基本没有奖金‘ end 奖金状况 from emp group by deptno,job order by deptno desc, avg(sal) desc;
 
 即case的前后不需要带参数,在when内将参数带入即可
 
 
 
 
 
 
 
 
 

oracle:case when 语句的区间用法

标签:

原文地址:http://www.cnblogs.com/cingchen/p/4343672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!