我正在将存储过程从SQL服务器迁移到POSTGRESQL。我应该把桌子退了。但是,我有以下问题:
IF ROWSTATE = 'L' THEN
return TABLE A;
ELSIF ROWSTATE = 'C' THEN
return TABLE B;
END IF
如何在POSTGRESQL中使用函数来实现?
发布于 2022-06-28 12:14:00
您必须创建一个RETURNS TABLE
函数,该函数包含表a
和b
中期望的列,例如:
CREATE OR REPLACE FUNCTION myfunc(rowstate text)
RETURNS TABLE (ret_col1 text, ret_col2 text) AS $$
BEGIN
IF $1='L' THEN
RETURN QUERY SELECT cola1, cola2 FROM a;
ELSEIF $1='C' THEN
RETURN QUERY SELECT colb1, colb2 FROM b;
END IF;
END;
$$ LANGUAGE plpgsql;
演示:db<>fiddle
https://stackoverflow.com/questions/72785968
复制相似问题