oracle语句,创建一个函数,以员工号为参数,返回该员工所在部门的平均工资。
SQL>CREATEORREPLACEfunctionfun_ave(v_empoinemp.empno%TYPE)returnnumberisaveragenumber...
SQL>CREATE OR REPLACE function fun_ave(v_empo in emp.empno%TYPE)
return number
is
average number;
begin
select avg(emp.sal) into average from emp where emp.deptno=(select deptno from emp where emp.empno=v_empo);
return avarege;
End;
/
declare
zdl number;
begin
zdl:=fun_ave(7369);
DBMS_OUTPUT.PUT_LINE(zdl);
End;
/
哪个大神解释下这程序,详细的解释例如语法中where是干什么?select干什么? 展开
return number
is
average number;
begin
select avg(emp.sal) into average from emp where emp.deptno=(select deptno from emp where emp.empno=v_empo);
return avarege;
End;
/
declare
zdl number;
begin
zdl:=fun_ave(7369);
DBMS_OUTPUT.PUT_LINE(zdl);
End;
/
哪个大神解释下这程序,详细的解释例如语法中where是干什么?select干什么? 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
where 是查询的条件,select 是需要返回的字段,这上最基本的查询关键字
追问
这解释太笼统了!没有具体!我要的就是select后面的语句是什么意思具体含义?where查询的是什么?还有declare
zdl number;
begin
zdl:=fun_ave(7369);
什么意思啊?因为我们检查的很仔细所以都要给说明白了!我说的像你一样太笼统所以不合格!
追答
where 条件是 在emp表中查找到输入的员工v_empo所在的部门编号deptno;
select 是将上面条件查出来的部门编号的所有薪水sal 取平均值并赋值给average
返回average
zdl number; ---------------声名 zdl 为number型变量
begin
zdl:=fun_ave(7369); -------------将函数调用结果赋值给zdl(函数参数7369)
DBMS_OUTPUT.PUT_LINE(zdl);------------终端输出 zdl的值
End;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询