PostgreSQL的语法错误,如果在一个函数声明
问题描述:
我想写PostgreSQL中的功能和我得到一个语法错误的如果声明:PostgreSQL的语法错误,如果在一个函数声明
CREATE OR REPLACE FUNCTION getallcampuses(IN a character varying, IN b character varying)
RETURNS TABLE(campusid charactervarying, campusname character varying) AS
$BODY$
BEGIN
if $1 = 'PREK' then
SELECT * from "SIS_campus";
ELSE
BEGIN
IF $2 = 'DAll' then
SELECT distinct(district_id) || 'ALL' AS CampusID, ' District' AS CampusName
UNION
SELECT campus_id, name
FROM "SIS_campus"
WHERE district_name IS NOT NULL
order by name;
Elsif $2 = 'All' then
SELECT campus_id, name
FROM "SIS_campus"
WHERE district_name IS NOT NULL
and isnumeric(name) = 0
order by name;
end if;
END
end if;
END
$BODY$
LANGUAGE sql;
以下是错误:
ERROR: syntax error at or near "if"
LINE 5: if $1 = 'PREK' then
^
你必须在'否则如果$ 2错别字=“所有” then' – 2014-09-12 16:48:09
感谢包括一个完整的函数体以及确切的错误消息文本。这是非常罕见的,并且被赞赏。 (但是,将来,请将PostgreSQL版本也放在文本中)。 – 2014-09-12 16:52:53