oracle中decode函数
类别:数据库 浏览量:709
时间:2016-9-1 oracle中decode函数
oracle中decode函数一、语法
1、decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
2、DECODE(字段或字段的运算,值1,值2,值3)
该函数的含义如下:
(1)、当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
(2)、当然值1,值2,值3也可以是表达式
二、实例
1、创建一个学生成绩表。字段有: 学生名, 科目名和分数
create table student_score(
name varchar2(30),
subject varchar2(20),
score number(4,1)
);
2、插入测试数据
insert into student_score (name,subject,score)values('zhang san','Chinese',90);
insert into student_score (name,subject,score)values('zhang san','Mathematics',80);
insert into student_score (name,subject,score)values('zhang san','English',79);
3、实例、如果是中文课程的话, 显示分数, 其他课程分数为零。
select name,subject,decode(subject, 'Chinese',score,0) from student_score;
结果:
4、再次插入如下数据
insert into student_score (name,subject,score)values('li shi','Chinese',96);
insert into student_score (name,subject,score)values('li shi','Mathematics',86);
insert into student_score (name,subject,score)values('li shi','English',76);
insert into student_score (name,subject,score)values('wang wu','Chinese',92);
insert into student_score (name,subject,score)values('wang wu','Mathematics',82);
insert into student_score (name,subject,score)values('wang wu','English',72);
5、查询每个学生的各科成绩
select name,
sum(decode(subject, 'Chinese', nvl(score, 0), 0)) "Chinese",
sum(decode(subject, 'Mathematics', nvl(score, 0), 0)) "Mathematics",
sum(decode(subject, 'English', nvl(score, 0), 0)) "English"
from student_score
group by name;
结果如图
标签:oracle
您可能感兴趣
- MySQL与Oracle数据类型对应关系
- oracle中decode函数
- zabbix支持oracleodbc功能吗(使用zabbix监控oracle数据库的方法详解)
- oraclemysql知识点(详解Mysql和Oracle之间的误区)
- Oracle TO_CHAR的使用
- mysql的事务隔离级别怎么实现(mysql、oracle默认事务隔离级别的说明)
- Oracle正则表达式的用法
- mysql数据库与表的基本操作总结(Mysql、Oracle中常用的多表修改语句总结)
- oracle恢复删除的表数据
- oracle和mysql查询所有表(Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍)
- mac使用docker部署项目(如何在mac上用docker对Oracle进行部署使用)
- oracle RMAN CONFIGURE配置项
- oracle中varchar2(byte)、varchar2(char)、nvarchar2()区别
- docker部署oracle(Docker安装Oracle_11g的方法)
- mysql与oracle体系结构(详解MySQL实时同步到Oracle解决方案)
- oracle如何用脚本文件创建表空间(MySQL版oracle下scott用户建表语句实例)
- 换代在即,现在是抄底 7.5代 高尔夫的最佳时机吗(换代在即现在是抄底)
- 2020年大众7.5代高尔夫R终结特别版 最后的呐喊(2020年大众7.5代高尔夫R终结特别版)
- 七年前的这部剧有毒,全剧只有女主红到发紫,男主至今无人认识(七年前的这部剧有毒)
- 宋轶除了演过于曼丽,原来还演过一个青楼女子(宋轶除了演过于曼丽)
- 赵丽颖第一部当女主的戏,主角配角个个都是实力演员(赵丽颖第一部当女主的戏)
- 乾隆为何这么喜爱白塔原因是什么(乾隆为何这么喜爱白塔原因是什么)
热门推荐
- python简单代码实例(Python实现 版本号对比功能的实例代码)
- iis7.5缓存设置
- html5隐藏数字(HTML5去掉输入框type为number时的上下箭头的实现方法)
- 前端常见的面试题
- 华为云服务器远程登录后怎么办(华为云服务器怎么登陆不上去)
- linux搭建dhcp服务器命令(超详细讲解Linux DHCP服务)
- vue怎么实现倒计时(Vue计时器的用法详解)
- html5带放大镜的搜索代码(html5借用repeating-linear-gradient实现一把刻度尺ruler)
- think php上传服务器(ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例)
- nginx配置使用环境变量(关于Nginx开启gzip的配置的问题)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9