我在 postgres 数据库上有以下功能:
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))。
与记录合并似乎是不可能的。
我怎样才能做到这一点?