FROM 절에서 레코드를 두 번 이상 반환하는 함수를 호출하려면 어떻게해야합니까? 레코드를 반환하는 함수를 사용할 때 '열 정의 목록'을 지정해야한다는 것을 이해합니다. 그런데 어떻게 함수에 별칭을 사용할 수 있습니까?PostgreSQL : FROM 절에서 함수를 두 번 이상 호출하십시오.
예 :
ERROR: table name "foo" specified more than once
내가 열 정의 목록을 계속 사용하려는 기능 내가 마지막에 가지고에 사용할 때문에, 다음과 함께
CREATE OR REPLACE FUNCTION foo(which_foo int) RETURNS SETOF RECORD AS
$BODY$BEGIN
IF which_foo=0 THEN
RETURN QUERY EXECUTE 'SELECT 1::int,2::int;';
ELSE
RETURN QUERY EXECUTE 'SELECT 1::int,2::int;';
END IF;
END$BODY$
LANGUAGE plpgsql;
SELECT * FROM foo(0) AS (a int, b int);;
SELECT * FROM foo(1) AS (c int, d int);
SELECT * FROM foo(0) AS (a int, b int), foo(1) AS (c int, d int);
마지막 선택 문이 실패합니다 가능한 한 포괄적이어야한다.
아;) 감사합니다! – user2402456