当前位置: 首页 > news >正文

oracle select decode判断 ,sign使用例子

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 

比较大小函数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,'优秀',0,'优秀',-1, 
decode(sign(score-70),1,'良好',0,'良好',-1, 
decode(sign(score-60),1,'及格',0,'及格',-1,'不及格'))) 
from student;

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

 

 

SELECT  
             decode( sign(AllPerson.ID_-smallpct.HR_EFF_PPLAN_CYCLE_ID_),0,
             (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_plan ep1 , 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')>=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_
            AND news1.HR_EFF_PLAN_ID_=ep1.ID_ GROUP BY cycle1.ID_ ) AllPerson
       

 

 

SELECT decode ( (COUNT(1)),0,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_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_ ) hasReport 

 

转载于:https://my.oschina.net/u/2419285/blog/813914

相关文章:

  • 快速入门vuex带案例说明(超详细易理解)
  • wifi信道1,6,11科普
  • uni-app中微信小程序端使用腾讯地图API实现定位服务(超详细教程)
  • CSS 3学习——transition 过渡
  • 关于React中DOM,虚拟DOM及diff算法的理解
  • 类型签名在Javascript中的探索
  • 快速入门,理解,使用 axios请求
  • 第二章 存储,2.1 永不停止的脚步——数据库优化之路(作者:佳毅)
  • CSS实现元素水平垂直居中的几种方式
  • 年末购机推荐,首选OPPO这两款中端旗舰王者
  • js中深浅拷贝的实现方式(含图解原理)
  • Java刷题知识点之File对象常用功能:获取文件名称、获取文件路径、获取文件大小、获取文件修改时间、创建与删除、判断、重命名、查看系统根目录、容量获取、获取某个目录下内容、过滤器...
  • 查看httpd状态
  • js中如何判断引用值为数组(几种不同方式的详解)
  • 项目代码重用
  • ComponentOne 2017 V2版本正式发布
  • django开发-定时任务的使用
  • export和import的用法总结
  • nginx 配置多 域名 + 多 https
  • Spring核心 Bean的高级装配
  • Spring框架之我见(三)——IOC、AOP
  • Vue.js-Day01
  • 从tcpdump抓包看TCP/IP协议
  • 给新手的新浪微博 SDK 集成教程【一】
  • 官方解决所有 npm 全局安装权限问题
  • 手写双向链表LinkedList的几个常用功能
  • 一、python与pycharm的安装
  • 一份游戏开发学习路线
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 交换综合实验一
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • (02)vite环境变量配置
  • (1)(1.9) MSP (version 4.2)
  • (C语言)fgets与fputs函数详解
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .net 8 发布了,试下微软最近强推的MAUI
  • .Net 路由处理厉害了
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • @RequestMapping用法详解
  • @SpringBootApplication 包含的三个注解及其含义
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [ C++ ] STL---string类的使用指南
  • [ 数据结构 - C++] AVL树原理及实现
  • [BZOJ1053][HAOI2007]反素数ant
  • [C#基础]说说lock到底锁谁?
  • [Excel VBA]单元格区域引用方式的小结
  • [HOW TO]如何在iPhone应用程序中发送邮件
  • [HTML]Web前端开发技术29(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • [Java]快速入门二叉树,手撕相关面试题
  • [Java并发编程实战] 共享对象之可见性
  • [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表
  • [Mac软件]Goldie App v2.2 Mac黄金比例设计工具