Oracle数据库按属性成绩查询
create or replace function bb return nvarchar2
as
-----------自定义游标类型
type class_student is record(
sname varchar2(200),
Oracle varchar2(200),
Java varchar2(200),
Android varchar2(200)
);
type score_cursor is ref cursor return class_student;
-----------声明游标变量
student_cursor score_cursor;
v_student class_student;
begin
open student_cursor for select s.name,s.oracle,s.java,s.android from (
select name,sum(decode(cname,'Oracle',score,null))as Oracle,
sum(decode(cname,'Java',score,null))as Java,
sum(decode(cname,'Android',score,null))as Android
from(
select student.sid,student.name,course.cname,score.score
from course,student,score
where student.sid=score.sid and score.cid=course.cid
order by student.sid)
group by name) s;
dbms_output.put_line('姓名'||' '||'Oracle'||' '||'Java'||' '||'Android');
fetch student_cursor into v_student;
while student_cursor%found loop
dbms_output.put_line(v_student.sname ||' '||
case when v_student.Oracle is null then '没考试'
when v_student.Oracle>=90 then '优秀'
when v_student.Oracle<90 and v_student.Oracle>=60 then '良好'
else '不及格' end ||' '||
case when v_student.Java is null then '没考试'
when v_student.Java>=90 then '优秀'
when v_student.Java<90 and v_student.Java>=60 then '良好'
else '不及格' end||' '||
case when v_student.Android is null then '没考试'
when v_student.Android>=90 then '优秀'
when v_student.Android<90 and v_student.Android>=60 then '良好'
else '不及格' end );
fetch student_cursor into v_student;
end loop;
return '';
end bb;
---------------------------------------------------------------------------------
---数据库有三张表:course(cname,cid);
--- student(sname,sid,cid);
--- score(cid,score);
---三门课程,Oracle,Java,Android。
---根据成绩来区分优秀,良好和有没有考试。
----------------------------------------------------------------------------------
Oracle数据库按属性成绩查询的更多相关文章
- Oracle数据库之七 多表查询
七.多表查询 对于查询在之前已经学过了简单查询.限定查询.查询排序,这些都属于 SQL 的标准语句,而上一章的单行函数,主要功能是为了弥补查询的不足. 而从多表查询开始就正式进入到了复杂查询部 ...
- SQLSERVER 创建对Oracle数据库的DBlink以及查询使用
1. 与针对oracle数据库一样, 在sqlserver中创建对oracle数据库的dblink 安全性上面也进行定义(貌似不需要跟访问字符串只需要填一个即可) 发现有的版本改注册表不管用 还得修改 ...
- Oracle 数据库基础:数据查询与操作
SELECT uname FROM TUser WHERE uname=‘admin’ SELECT 字段名列表 FROM 表名 WHERE 条件; 在Oracle数据库中,对象是属于模式的,每个账户 ...
- 007.Oracle数据库 , 使用%进行模糊查询
/*Oracle数据库查询日期在两者之间*/ SELECT PKID, OCCUR_DATE, ATA FROM LM_FAULT WHERE ( ( OCCUR_DATE >= to_date ...
- Oracle数据库order by排序查询分页比不分页还慢问题解决办法
简单说下问题,有一个JDBC的查询SQL,分页查询语句中有一个排序order by create_time,理论上来说JDBC查询已经是比较底层的技术了,没有像Hibernate.MyBatis那样又 ...
- Oracle数据库之单表查询
接着上一篇的分享,今天主要给大家分享的是关于数据中的单表查询,单表查询很基础,也很重要,但是任何一个初学者必须要掌握的姿势,单表查询就是对单个表进行操作,查询我们想要的数据.单表查询里面的内容也是比较 ...
- Oracle数据库之多表查询一
上一篇给大家介绍了数据的单表查询,相信大家对于单表的查询应该都有了一些了解.单表查询在数据库中的使用会有一些,但并不是很多,但是作为初学者,我们需要学习单表查询的思路.今天呢,我们为大家介绍一下数据库 ...
- ORACLE数据库存储空间使用情况查询
使用系统sys或者dba权限的账户创建视图如下: 1. 主要从数据库的表dba_data_files,dba_segments两张表中获取.2. 默认数据库保存的是byte单位,转换关系如下: 102 ...
- oracle数据库使用之数据查询入门
1.在查询过程中使用算术表达式对数据进行运算 student表结构如下: 最后一项salary表示每个人的月薪,我现在想查询每个人的年薪: 2.使用nvl函数处理null值,向表中插入一条数据,该数据 ...
随机推荐
- android使用友盟第三方自动更新/手动更新
最近项目用到自动更新,发现一个方便快捷的第三方组件非常好用,只需要几行代码搞定,非常适合新手使用.分享给大家一起学习. 本文档帮助您以最快速最简洁的方式集成使用自动更新组件. 一.申请友盟开发者账号创 ...
- CREATE DATABASE建库语句详解
原创地址:http://blog.csdn.net/guguda2008/article/details/5716939 一个完整的建库语句是类似这样的: IF DB_ID('TEST') IS NO ...
- 解决获取IP地址时出现“在一个非套…
今天单位的一台机器在用IPCONFIG/RENEW时遇到了这个问题,上网查了一下,网上的版本在对XP不太好用,网上的版本如下: 1.从注册表中备份以下项:(当然也可以用Erunt备份整个注册表)HKE ...
- Foundation--NSDictionary+NSMutableDictionary
键值对 key(一般为字符串对象)---vaule(必须是对象) Person *p1 =[[Person alloc ]init]; Person *p2 =[[Person alloc ]init ...
- spring 配置和实例
Spring 是一个开源框架.Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能.Spring 是一个 IOC(DI) ...
- USACO Chapter 1 解题总结
USACO Chapter 1 解题总结 1.1.1 Your Ride Is Here 基本字符串操作,无压力. 1.1.2 Greedy Gift Givers 基础模拟题,弄明白题意,不怕麻烦, ...
- Windows 端口和任务 查看 相关命令
netstat -aon|findstr " //查看端口 tasklist|findstr " //根据PID找到对应的程序 taskkill /f /t /im netbox. ...
- Spring的IOC注解学习
先引入jar包,common-annotations.jar 接着上代码: 1.dao接口 package com.dao; public interface OkpDao { public void ...
- php isset — 检测变量是否设置 foreach循环运用
例子 $a = 336 ; $b = 33 ; function large($x,$y){ if((!isset($x))||(!isset($y))){ // echo "this fu ...
- nginx上传模块nginx_upload_module使用
1.安装模块 1 cd /data/software 2 wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.0.12.t ...