文档介绍:-----为后人留下具有鼓舞仂量菂神圣
人生木旁样
为后人留下具有鼓舞仂量菂神圣人生木旁样:髙鞝旳生獲情操,不搀杂
私欲的爱,軹为他人材行亻吏dě能力,bú受里予心簳扰嘚鮃静,芣為葭
潒遮蔽锝知识。
Oracle Decode函数详解
分类: 数据库SQL 2012-08-17 13:30 309人阅读评论(0) 收藏举报
select 合格情况,
sum(ame, '计算机', countnum, 0)) 人数
from
(select
cname,
case when scgrade <60 then '不合格'
when scgrade >=60 and scgrade <70 then '合格'
when scgrade >=70 and scgrade <85 then '良好'
when scgrade >=85 and scgrade <= 100 then '优秀' end
as ok,
count(scgrade) as countnum
from sc, c
where o = o
group by
cname,
case when scgrade <60 then '不合格'
when scgrade >=60 and scgrade <70 then '合格'
when scgrade >=70 and scgrade <85 then '良好'
when scgrade >=85 and scgrade <=100 then '优秀' end) a
group by
order by desc
函数介绍
DECODE函数是ORACLE PL/SQL的功能强大的函数之一,目前还只有
ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功
能。DECODE有什么用途呢? 先构造一个例子,假设我们想给智星职员加工
资,其标准是:工资在8000元以下的加20%;工资在8000元或以上的加
15%,通常的做法是,先选出记录中的工资字段值? select salary into var-salary
from employee,然后对变量var-salary用if-then-else或choose case之类的流控制
语句进行判断。如果用DECODE函数,那么我们就可以把这些流控制语句省
略,通过SQL语句就可以直接完成。如下:select decode(sign(salary -
8000),>=0,salary*,<0,salary*,salary) from employee 是不是很简洁?
DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如
果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if
值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,
1
值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,
我们通过一些函数或计算替代value,是可以使