游标使用,Oracle数据库按属性编辑成绩
2013-10-02 21:25
387 查看
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。 ---根据成绩来区分优秀,良好和有没有考试。 ----------------------------------------------------------------------------------
相关文章推荐
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- mysql问答汇集
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle 数据库 临时数据的处理方法
- 最近比较流行的数据库挂马
- 重装主控服务器后,数据库连接失败的解决办法:请正确还原数据库。
- 九种防MDB数据库被下载的方法小结
- asp向数据库插入数据的方法rs
- 浅析C# web访问mysql数据库-整理归纳总结
- SQL Server误区30日谈 第9天 数据库文件收缩不会影响性能
- CMD命令操作MSSQL2005数据库(命令整理)