我需要创建一个函数,根据书籍主题给出书籍价格的平均值。这个函数的规则是:
a) 如果参数为 null,则返回 null
b) 如果参数与我们在主题表中的任何主题 id 不匹配,则返回值 -2
c) 如果参数与我们在主题表中的主题 id 匹配,但我们没有任何具有该主题的书籍,则返回值 -1
create function AvgPriceByTopic(
p_subject varchar(20))
RETURNS decimal(8,2)
begin
declare v_avgPrice decimal(8,2);
declare v_avgListPrice decimal(8,2);
if p_subject is null then
set v_avgPrice := null;
elseif exists (
select avg(list_price) into v_avgListPrice
from books
where topic_id = p_subject
group by book_id
limit 1 ) then
set v_avgPrice := v_avgListPrice;
else
set v_avgPrice := -2;
end if;
return v_avgPrice;
end;
#
我收到一条错误消息:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'into v_avgListPrice from books' at line 11
有什么建议可以摆脱这个错误?有时我的语法有问题......提前谢谢。