decode(字段或计算表达式,
条件值1,结果值1,
条件值2,结果值2[,默认值]
)
if(字段或计算表达式 == 条件值1){
return 结果值1;
}else if(字段或计算表达式 == 条件值2){
return 结果值2;
}else{
return 默认值;
}
//将查询的sal列显示大写形式
select empno,ename,
decode(sal,800,'捌佰元',
1100,'壹仟一佰元',
1300,'壹仟叁佰元',
1600,'壹仟陆佰元',
'默认值') upper
from emp;
//统计部门编号,工资大于等于2000的人数,
//小于2000的人数,该部门总人数
select deptno,count(*) total,
sum(decode(sign(sal-2000),-1,0,1)) great,
sum(decode(sign(sal-2000),-1,1,0)) least
from emp
where deptno is not null
group by deptno;