在 postgresql 函数上创建 if 语句时出现语法错误

问题描述 投票:0回答:1

我正在学习 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。

postgresql
1个回答
0
投票

请将您的

elseif
替换为
elsif
它应该可以工作

© www.soinside.com 2019 - 2024. All rights reserved.