MySQL创建一个函数,输入一个部门名称,返回该部门的平均工资。
时间: 2023-07-30 15:08:01 浏览: 84
可以使用下面的 SQL 语句创建一个函数,实现输入部门名称返回平均工资的功能:
```
CREATE FUNCTION get_avg_salary(dept_name VARCHAR(50))
RETURNS DECIMAL(10,2)
BEGIN
DECLARE dept_id INT;
DECLARE avg_salary DECIMAL(10,2);
SELECT department_id INTO dept_id FROM departments WHERE department_name = dept_name;
SELECT AVG(salary) INTO avg_salary FROM employees WHERE department_id = dept_id;
RETURN avg_salary;
END;
```
这个函数首先根据输入的部门名称查询出部门的 ID,然后使用这个 ID 查询出该部门的员工的平均工资。最后将平均工资以 DECIMAL(10,2) 的格式返回。
相关问题
mysql每一个部门平均工资的等级
您可以通过以下 SQL 语句查询每个部门的平均工资等级:
```
SELECT dept_name, AVG(salary) as avg_salary,
CASE
WHEN AVG(salary) < 5000 THEN '低'
WHEN AVG(salary) BETWEEN 5000 AND 10000 THEN '中'
ELSE '高'
END as salary_level
FROM employees JOIN departments USING(dept_no)
GROUP BY dept_name;
```
该语句会将 `employees` 表和 `departments` 表连接起来,计算每个部门的平均工资,并对平均工资进行分级。最后返回每个部门的名称、平均工资、以及平均工资等级。
其中,`CASE` 语句用于根据平均工资的范围分级,这里定义了三个等级:低、中、高,分别对应平均工资小于 5000、平均工资在 5000 到 10000 之间、平均工资大于 10000。
请注意,以上 SQL 语句仅为示例,具体查询语句需要根据实际数据表结构和数据格式进行调整。
Mysql创建一个自定义函数,返回某个学生的姓名
好的,以下是创建一个自定义函数来返回某个学生的姓名的MySQL代码:
```
DELIMITER //
CREATE FUNCTION get_student_name(student_id INT) RETURNS VARCHAR(255)
BEGIN
DECLARE student_name VARCHAR(255);
SELECT name INTO student_name FROM students WHERE id = student_id;
RETURN student_name;
END //
DELIMITER ;
```
这个函数使用了一个输入参数 `student_id`,用来指定要查询的学生的ID。它在 `students` 表中查找对应学生的姓名,并将其赋值给局部变量 `student_name`。最后,函数返回这个变量的值。
你可以通过调用这个函数并传入一个学生的ID来获取他的姓名,例如:
```
SELECT get_student_name(123);
```
其中 `123` 是要查询学生的ID。函数会返回这个学生的姓名。