0

0

Oracle中decode函数与case when的使用

php中文网

php中文网

发布时间:2016-06-07 15:19:35

|

1645人浏览过

|

来源于php中文网

原创

DECODE()函数,它将输入数与函数中的参数列表相比较,根据输入返回一个对应。函数的参数列表是由若干数及其对应结果组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回。 区别于SQL的其它函数,DECODE函数还能识别和操作

decode()函数,它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。

区别于SQL的其它函数,DECODE函数还能识别和操作空值。

语法:DECODE(control_value,value1,result1[,value2,result2…][,default_result]);

语法解读:control _value试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。

value1是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果值将被返回。对应一个空的返回值,可以使用关键字NULL于之对应

result1 是一组成序偶的结果值。

default_result 未能与任何一个值匹配时,函数返回的默认值。

例1:select decode(sign(to_number(to_char(sysdate,'MM'))-6),1,'下半年',-1,'上半年',0,'六月') as MM from dual;

sign()函数根据表达式的值是0、正数还是负数,分别返回0、1、-1;

dual是oracle的虚拟表,比如select sysdate from dual 查询系统当前时间;

动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版
动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版

动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包

下载

此sql根据数据库查询出系统当前时间,取时间的月份,先转换成char型,再将char转换为number型,

当月份减6大于0时,显示下半年,小于0时显示上关年,等于0 时显示六月。

例2:一个员工表,employees和一个部门表,departments;

员工表有员工编号employee_id,员工姓名employee_name,员工工资salary和部门编码department_id;

部门表有部门编号department_id,部门名称department_name;

部题描述:查出各部门的员工工资大于3000和小等于3000的人数。

sql语句:

select d.department_id,
        sum(decode(sign(e.salary - 3000),1,1,-1,0)) maxSal,
        sum(decode(sign(3000 - e.salary),1,1,-1,0)) minSal
        from employees e, departments d
       where e.department_id = d.department_id
       group by d.department_id;


SQL解析:因为当工资小于等于3000时,都返回0,所以用-1代替小于和等于(即0和-1)的情况。

另一解决方法(用case when....then....end):

select d.department_id,
        sum(case when e.salary - 3000 > 0 then 1 else 0 end ) maxSal ,
        sum(case when 3000 - e.salary > 0 then 1 else 0 end ) minSal
        from employees e, departments d
        where e.department_id = d.department_id
        group by d.department_id; 


case when 有多个条件时,用case when .... then .... when ... then .......end

select m.guid as ID,
        case 
          when m.superitemid is null then
           '-1'
          when m.superitemid = '0' then
           '-1'
          else
           m.superitemid
        end as PID,
        m.code || '-' || m.name as TEXT,
        m.code,
        m.name
   from T_PUBMOFDEP m

相关专题

更多
虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

29

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

20

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

37

2025.12.25

word转换成ppt教程大全
word转换成ppt教程大全

本专题整合了word转换成ppt教程,阅读专题下面的文章了解更多详细操作。

6

2025.12.25

msvcp140.dll丢失相关教程
msvcp140.dll丢失相关教程

本专题整合了msvcp140.dll丢失相关解决方法,阅读专题下面的文章了解更多详细操作。

2

2025.12.25

笔记本电脑卡反应很慢处理方法汇总
笔记本电脑卡反应很慢处理方法汇总

本专题整合了笔记本电脑卡反应慢解决方法,阅读专题下面的文章了解更多详细内容。

6

2025.12.25

微信调黑色模式教程
微信调黑色模式教程

本专题整合了微信调黑色模式教程,阅读下面的文章了解更多详细内容。

5

2025.12.25

ps入门教程
ps入门教程

本专题整合了ps相关教程,阅读下面的文章了解更多详细内容。

4

2025.12.25

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

218

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.1万人学习

Java 教程
Java 教程

共578课时 | 38.1万人学习

oracle知识库
oracle知识库

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号