0
나는이 포스트 그레스 데이터베이스에 다음과 같은 기능 :포스트 그레스에 결과가없는 경우 여러 기본값을 반환하는 방법은 무엇입니까?
CREATE OR REPLACE FUNCTION getNearestPoints(float[], float[], float[], float[], int)
RETURNS SETOF record AS $$
DECLARE
i INT;
ret RECORD;
BEGIN
FOR i IN 1..$5 LOOP
FOR ret IN EXECUTE 'SELECT height, ST_Y(point), ST_X(point) FROM heights
WHERE ST_Intersects(ST_MakeEnvelope(' || $1[i] || ',' || $2[i] || ',' || $3[i] || ',' || $4[i] || ', 4326), point)' LOOP
RETURN NEXT ret;
END LOOP;
END LOOP;
RETURN;
END;
$$ LANGUAGE plpgsql;
내가 각 열에 대한 기록에 (예를 들어 (-2000, -181, -181)), 경우 쿼리 반환을 기본 값을 반환 할 행이 없습니다.
레코드와 병합 할 수없는 것 같습니다.
어떻게해야합니까?
감사합니다. 그러나 행을 반환하지 않으면 쿼리를 다시 실행하지 않고 결과를 계산하지 않고 어떻게 평가할 수 있습니까? – user1894572
함수 본문 안에서 위의 예제에서 사용 된 변수'found'에서 빌드를 사용할 수 있습니다. 마지막 결과에서 결과가 발견되었는지 여부가 결정됩니다. – Wojtas
고마워요! 그것은 작동합니다. 미안하지만, 그 방법을 보여주기위한 예일뿐입니다. – user1894572