0
我有一個Postgres數據庫以下功能:如何在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)),如果該查詢返回沒有行。
與記錄合併似乎不可能。
我該如何設法做到這一點?
謝謝,這聽起來不錯。但是,如果沒有行返回(沒有再次執行查詢並計算結果),我該如何評估呢? – user1894572
在函數體內部,你可以使用上面例子中使用的變量'found'來構建。它確定是否在最後的統計結果中找到。 – Wojtas
非常感謝!有用。對不起,我想,這只是一個例子來展示這個方法。 – user1894572