oracle select decode判断 ,sign使用例子

比较大小函数SIGN

sign(x)或者Sign(x)叫做符号函数,其功能是取某个数的符号(正或负):当x>0,sign(x)=1;当x=0,sign(x)=0;当x<0, sign(x)=-1;

x可以是函数或计算表达式

有学生成绩表student,现在要用decode函数实现以下几个功能:成绩>85,显示优秀;>70显示良好;>60及格;否则是不及格。

假设student的编号为id,成绩为score,那么:
select id,decode(sign(score-85),1,'优秀',-1,
decode(sign(score-70),'良好',
decode(sign(score-60),'及格','不及格')))
from student;

decode 和 case when 使用原理都是一样的

SELECT
decode( sign(AllPerson.ID_-smallpct.HR_EFF_PPLAN_CYCLE_ID_),
(AllPerson.AllPersonCount-smallpct.smallpctCount),
AllPerson.AllPersonCount) AS noToReportNum

from
( SELECT COUNT( pcpt1.HR_EFF_PPLAN_CYCLE_ID_) smallpctCount,pcpt1.HR_EFF_PPLAN_CYCLE_ID_ FROM
HR_EFF_PPLAN_CYCLE cycle1,hr_eff_plan ep1,HR_EFF_PFMCE_PLAN pp1,
HR_EFF_PFMCE_PLANEECPT pcpt1
WHERE
ep1.STATUS_='0' AND cycle1.STATUS_='0' AND pp1.STATUS_='0' AND pcpt1.STATUS_='0'
AND pcpt1.HR_EFF_PFMCE_PLAN_ID_=pp1.ID_
AND pcpt1.HR_EFF_PPLAN_CYCLE_ID_=cycle1.ID_
and to_char(sysdate,'yy-MM')>=to_char(cycle1.OBJ_REPORT_STIME_,'yy-MM')
AND cycle1.HR_EFF_PFMCE_PLAN_ID_=pp1.ID_
AND pp1.HR_EFF_PLAN_ID_=ep1.ID_ GROUP BY pcpt1.HR_EFF_PPLAN_CYCLE_ID_ ) smallpct
,
( SELECT COUNT(news1.ID_) AllPersonCount,cycle1.ID_ FROM
HR_EFF_PPLAN_CYCLE cycle1,hr_eff_news news1,HR_EFF_PFMCE_PLAN pp1
WHERE
ep1.STATUS_='0' AND cycle1.STATUS_='0' AND pp1.STATUS_='0'

and to_char(sysdate,'yy-MM')
AND cycle1.HR_EFF_PFMCE_PLAN_ID_=pp1.ID_
AND pp1.HR_EFF_PLAN_ID_=ep1.ID_
AND news1.HR_EFF_PLAN_ID_=ep1.ID_ GROUP BY cycle1.ID_ ) AllPerson

SELECT decode ( (COUNT(1)),2,(COUNT(1)) ) from ( SELECT COUNT( pcpt1.HR_EFF_PPLAN_CYCLE_ID_) smallpctCount,pcpt1.HR_EFF_PPLAN_CYCLE_ID_ FROM HR_EFF_PPLAN_CYCLE cycle1,HR_EFF_PFMCE_PLANEECPT pcpt1 WHERE ep1.STATUS_='0' AND cycle1.STATUS_='0' AND pp1.STATUS_='0' AND pcpt1.STATUS_='0' AND pcpt1.HR_EFF_PFMCE_PLAN_ID_=pp1.ID_ AND pcpt1.HR_EFF_PPLAN_CYCLE_ID_=cycle1.ID_ and to_char(sysdate,'yy-MM') AND cycle1.HR_EFF_PFMCE_PLAN_ID_=pp1.ID_ AND pp1.HR_EFF_PLAN_ID_=ep1.ID_ GROUP BY pcpt1.HR_EFF_PPLAN_CYCLE_ID_ ) hasReport

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...