【发布时间】:2013-12-16 20:45:46
【问题描述】:
我正在尝试创建这个 PostgreSQL 函数:
create or replace function sp_get_user_activity(
begindate date = null,
enddate date = null)
returns table (
page varchar(75)) as
$body$
begin
return query
if begindate is not null and enddate is not null then
begin
select page from log_pg where begindate >= created and endate <= created;
end;
else
if begindate is not null then
begin
select page from log_pg where begindate >= la.created_on;
end;
end if;
if enddate is not null then
begin
select page from log_pg where endate <= created;
end;
end if;
end if;
end;
$body$
language plpgsql;
我想创建一个从表中获取页面名称的函数,该函数可以不包括开始日期和结束日期,或者只是一个结束日期或只是一个开始日期。
我在尝试创建函数时收到的错误消息是并且指的是第一个“if”语句(我在上面剪切/粘贴的代码中的第 9 行)
ERROR: syntax error at or near "if" LINE 14: if begindate is not null and enddate is not null then ^ ********** Error ********** ERROR: syntax error at or near "if" SQL state: 42601
尝试谷歌搜索错误代码但没有成功。
【问题讨论】:
标签: sql function postgresql if-statement plpgsql