gpt4 book ai didi

mysql - 使用mysql创建函数

转载 作者:行者123 更新时间:2023-11-29 10:10:47 26 4
gpt4 key购买 nike

你好,我有一个任务:考虑一个具有两个关系的员工数据库:

employee(employee-name, street, city)
works(employee-name, company-name, salary)

其中主键带有下划线。编写一个查询来查找员工平均工资低于“第一银行公司”平均工资的公司。根据需要使用用户定义的 SQL 函数(创建函数命令)来回答上述查询,该函数将公司名称作为输入并返回给定的平均工资公司。我创建了这个函数:

create function avg_salary (c_name varchar(30))
returns numeric(8,6)
begin
declare a_salary numeric(8,6);

select avg(salary) into a_salary
from works
where company.company_name = c_name
group by company_name;

return a_salary;

select company_name
from works
where a_salary<(select avg(salary) from works where company_name = ’ First Bank Corporation’);
end

但是我收到一条错误消息:

Error 1415 (0A000) :Not allowed to return a result set from a function

我不明白为什么会出现此错误。谢谢您的帮助

最佳答案

您应该结合教程阅读 mysql 手册,以了解 mysql 的详细信息。
错误消息足够清楚(每个选择都返回一个结果集)所以选择company_name 作品有过错。选择 into 和 set = (select...) 就可以了。除了错误之外,当我尝试编译该函数时,“第一银行公司”周围的单引号很奇怪并且出现错误。也是按公司名称分组;在我的sql的更高版本中将被拒绝,因为company_name不包含在选择列表中。请参阅https://dev.mysql.com/doc/refman/8.0/en/group-by-handling.html - 在这种情况下不需要,因为您正在为指定公司求平均。Mysql还要求在create函数前后设置分隔符,其中函数中有多条语句见https://dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html

关于mysql - 使用mysql创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50998210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com