提问人:limier 提问时间:5/4/2023 最后编辑:E_net4limier 更新时间:5/4/2023 访问量:39
如何仅使用其行 ID 获取母表和子表结果?
How can I get mother table and daughter table results only with their row ID?
问:
我有一个母亲表人和 3 个女儿表:员工、潜在客户、访客。
我正在尝试构建一个存储函数,以便仅使用其 ID 获取母表和子表结果,但我遇到了相同的语法错误,并且还没有找到任何解决方案。
CATEG 在这里表示类别,这就是我知道我需要将结果与 person 表联接到哪个表的方式。
drop function if exists get_person_and_subtable(integer);
CREATE OR REPLACE FUNCTION get_person_and_subtable(IN id integer)
RETURNS SETOF record
AS $fun$
DECLARE var_categ CHAR(5);
DECLARE var_id INT = id;
BEGIN
var_categ := (select PER_CATEG from T_PERSONNE where PER_ID = var_id);
IF var_categ ='EMP' THEN RETURN QUERY SELECT * FROM T_PERSONNE INNER JOIN T_EMPLOYE ON T_PERSONNE.PER_ID = T_EMPLOYE.EMP_ID;
ELSE IF var_categ ='PROSP' THEN RETURN QUERY SELECT * FROM T_PERSONNE INNER JOIN T_PROSPECT ON T_PERSONNE.PER_ID = T_PROSPECT.PROSP_ID;
ELSE RETURN QUERY SELECT * FROM T_PERSONNE INNER JOIN T_VISITEUR ON T_PERSONNE.PER_ID = T_VISITEUR.VIS_ID;
END;
$fun$
LANGUAGE plpgsql;
我正在使用 PostgreSQL 数据库。
以下是错误消息的翻译:
错误:错误:语法错误在« ; 第 15 行:结束;
我尝试了不同的小语法更改,但没有用。
答: 暂无答案
评论
IF
END IF
ELSE
IF
RETURN