sql - 我有一个 PL/SQL 代码,但我不知道它的作用是什么?
问题描述
谁能逐行解释我的代码是做什么的?它是一个 PL/SQL 代码。 数据库图表如下所示
DECLARE
a NUMBER;
FUNCTION f_avg( p_man_id EMPLOYEES.MANAGER_ID%TYPE)
RETURN NUMBER IS v_val NUMBER(8,1);
b NUMBER;
BEGIN
SELECT AVG(salary), COUNT(salary) into v_val, b FROM EMPLOYEES WHERE MANAGER_ID = p_man_id;
IF b=0
THEN v_val := -1;
END IF;
RETURN v_val;
END f_avg;
BEGIN
a := f_avg(101);
IF a < 0
THEN DBMS_OUTPUT.PUT_LINE('No data found');
ELSE DBMS_OUTPUT.PUT_LINE(a);
END IF;
END;
解决方案
函数f_avg
计算经理为 的员工的平均工资p_man_id
:
- 如果没有经理是 的雇员,则
p_man_id
函数返回 -1 - 否则,它返回平均工资
匿名PL/SQL块的主要部分调用函数并101
传入p_man_id
显示
- 如果该经理没有员工(即函数返回
-1
) ,则“未找到数据” - 平均工资(如果存在)
推荐阅读
- perl - 如何枚举 Catalyst 应用程序中的所有端点?
- excel - 如何在每列都是不同颜色的 Excel(或 Google 表格)电子表格中交替行的色调?
- python-3.x - ValueError: Tensor("Placeholder:0", shape=(), dtype=float32) 必须与 Tensor("total:0", shape=(), dtype=resource) 来自同一个图
- javascript - 使用 React 和 Semantic Ui 在 Javascript 中处理变化
- mysql - MYSQL 别名连接不存在
- json - 使用共享组将 Oozie 工作流导入 Cloudera Hue
- python - 如何检查矩阵中的值?
- javascript - 模块 hmrclient 未注册 react native,为什么会发生这种情况以及如何解决?
- google-apps-script - 勾选复选框触发功能
- python - 如何在 Discord 上获取某人的个人资料图片以使用 PIL 对其进行编辑?