plsql编写函数,传入一个年龄,返回改年龄的人数
时间: 2023-05-12 09:06:34 浏览: 104
以下是一个简单的 PL/SQL 函数,可以根据传入的年龄返回该年龄的人数:
```
CREATE OR REPLACE FUNCTION get_num_people_by_age(p_age IN NUMBER)
RETURN NUMBER
IS
v_num_people NUMBER;
BEGIN
SELECT COUNT(*) INTO v_num_people
FROM people
WHERE age = p_age;
RETURN v_num_people;
END;
```
其中,`people` 表是一个包含人员信息的表,包括 `age` 字段表示年龄。你可以根据实际情况修改表名和字段名。
相关问题
编写一个plsql函数count_by_job,接受传入参数职位,据此统计并返回该职位员工数
你可以使用以下PL/SQL代码来编写名为count_by_job的函数:
```
CREATE OR REPLACE FUNCTION count_by_job(p_job IN employees.job%TYPE)
RETURN NUMBER
IS
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM employees WHERE job = p_job;
RETURN v_count;
END;
```
这个函数接收一个参数p_job,类型为employees表中job列的类型。在函数体中,使用SELECT COUNT(*)语句来查询employees表中job等于p_job的员工数量,并将结果保存在变量v_count中。最后,使用RETURN语句返回v_count。
使用该函数时,可以像下面这样调用它:
```
SELECT count_by_job('SALESMAN') FROM dual;
```
这个调用会将参数'SALESMAN'传递给count_by_job函数,并返回employees表中job等于'SALESMAN'的员工数量。需要注意的是,该函数中的表名和列名可以根据你的实际情况进行修改。
PLSQL传入三个数字求出之间的最大值
在Oracle PL/SQL中,如果你想计算三个数中的最大值,可以编写一个存储过程或匿名块来完成。这里是一个简单的示例,它接受三个数字作为输入参数,并返回它们的最大值:
```sql
CREATE OR REPLACE PROCEDURE find_max_value(num1 IN NUMBER, num2 IN NUMBER, num3 IN NUMBER)
RETURN NUMBER IS
max_value NUMBER;
BEGIN
max_value := GREATEST(num1, num2, num3); -- 使用内置的GREATEST函数找出最大值
DBMS_OUTPUT.PUT_LINE('The maximum value is: ' || max_value);
RETURN max_value;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('An error occurred: ' || SQLERRM);
END find_max_value;
/
-- 调用存储过程并传入数值
CALL find_max_value(5, 10, 15);
```
当你运行`CALL find_max_value(5, 10, 15)`时,它将输出15,因为这是3个数字中的最大值。
阅读全文