SQL - 函数中的if语句

时间:2014-04-07 09:52:00

标签: sql postgresql if-statement

我的函数中的if语句有些麻烦。 我得到了

ERROR: Syntaxfehler bei »if«
SQL Status:42601
Zeichen:78

我试图在两个日期之间获取数据。如果没有日期输入,我想获得所有数据。 代码看起来像这样

create or replace function datacut(DATE, DATE)
returns record AS $$
if $1 = ''
then
select * from hist_point;
else
SELECT *
from hist_point h
Where h.valid_from < $2 AND h.valid_from >= $1;
end if;
$$ LANGUAGE SQL;

这只是其他一些功能的原型。

欢迎任何提示,提示或帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

create or replace function datacut(DATE, DATE)
    returns record AS 
$BODY$
DECLARE  
BEGIN 
        IF $1 = '' then
            select * from hist_point;
        else
            SELECT * from hist_point h where h.valid_from < $2 AND h.valid_from >= $1;
        end if;
END;
$BODY$
LANGUAGE plpgsql;