我正在学习 postgresql 并尝试创建一个给出语法错误的函数。我有这样的代码:
create or replace function test_function(current_uncertainty float, last_updated timestamp, min_uncertainty float)
returns float
language plpgsql
as
$$
declare
-- variable declaration
default_uncertainty float;
days_not_played float;
one_month float;
begin
-- logic
default_uncertainty = 25/3;
one_month = 365 / 12;
days_not_played = abs(DATE_PART('day', (now()- last_updated )));
if(days_not_played >= 365) then
return default_uncertainty;
elseif days_not_played <= one_month then
return max(current_uncertainty, min_uncertainty);
else
-- TODO
return 0;
end if;
end;
$$;
我收到错误:SQL 错误 [42601]:错误:“if”处或附近的语法错误 位置:5
错误位置:行:25 位置:4
我正在使用 postgresql 版本 14。
请将您的
elseif
替换为 elsif
它应该可以工作