Oracle創建函數例子


編寫一個函數計算學生某一門課程在班級內的排名。

表結構如下:

 

 

 

create or replace function fun_score_rank(
p_in_stuid in number,--學號
p_in_courseid in  number --課程ID
)
return number
is
ls_pm number:=0;
ls_score number:=0;
begin
  --獲取該學生的成績
  select t.score into ls_score from score_ys t
   where t.stuid = p_in_stuid
     and t.courseid = p_in_courseid;
  --獲取成績比該學生高的人數
  select count(1) into ls_pm from score_ys t
   where t.courseid = p_in_courseid
   and  t.score>ls_score;
   --得到該學生的成績排名
   ls_pm:=ls_pm+1;
   return ls_pm;
exception
  when no_data_found  then
     dbms_output.put_line('該學生的課程:'||p_in_courseid|| '的成績在成績表中找不到');
end;

 

使用函數

select fun_score_rank('1001','2') 排名1, fun_score_rank('1002','1') 排名2 from dual;

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM