pgsql return table ERROR: column reference is ambiguous
我一直收到此错误:列引用" person "不明确。
我需要返回一个TABLE(人整数)。当我使用SETOF整数时,它工作正常,但在这种情况下,它不起作用。我的另一个函数recurse()可以很好地返回一组整数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | CREATE OR REPLACE FUNCTION try(_group text) RETURNS TABLE (person INTEGER) AS $$ DECLARE _init_id INTEGER; _record INTEGER; BEGIN SELECT id INTO _init_id FROM egroups WHERE name = _group; FOR _record IN SELECT person FROM egroupdata WHERE egroup IN (SELECT recurse(_init_id)) LOOP RETURN NEXT; END LOOP; END; $$ LANGUAGE plpgsql stable; |
不明确的列引用是由于存在多个具有相同名称的列。在这种情况下,我想这是返回表的怪癖。尝试将查询更改为:
1 | SELECT egroupdata.person FROM egroupdata WHERE egroup IN (SELECT recurse(_init_id)) |
这将消除列引用的歧义。