두 요소가 포함 된 배열을 반환하는 PostgreSQL (PLPGSQL)의 함수가 있습니다. 나는 함수를 호출하는 SELECT 문을 실행할 때, 나는 (예상대로) 배열을 포함하는 열을 얻을 :함수에서 열로 반환 된 PostgreSQL 변환 배열
[ 1 | 2 ]
: 내가 정말하고 싶은 무엇
{1, 2}
자신의 컬럼으로 이러한 요소를 추출입니다
나는 내가 할 수있는 것을 발견했다 :
SELECT (MyFunction())[1], (MyFunction())[2]
하지만 그 때문에 실행 시간 (이 기능은 매우 시간이 걸리는 기능입니다) 배, 두 번 함수를 호출합니다. 이 문제를 해결할 더 좋은 방법이 있습니까?
UPDATE 여기
내가 가진 것의 거의 완벽한 복제입니다 :
SELECT table1.a, table1.b, table1.c, (MyFunction(table1.a, table1.b, table1.c))[1],
(MyFunction(table1.a, table1.b, table1.c))[2]
FROM table1
INNER JOIN table2 using(b)
WHERE ... GROUP BY table1.a, table1.b, table1.c;
는 다시,이 배열에서 두 개의 열을 생산하지만 내 함수를 두 번 호출되고, 내 런타임을 두 배로 늘립니다.
이해야 당신 배열을 돌려 주겠습니까?아마 그 줄이 있어야합니다. 리팩토링 할 능력이 있습니까? – lightningmanic
될 것입니다 점에 유의한다 – SingleNegationElimination