1
使用PostgreSQL的9.3,OSX。功能/ subsquery表的PostgreSQL
我在下面的功能砍死在一起。
令人震驚的是,它的工作原理是根據位置返回單個郵政編碼列表。
我現在想爲/通過這些結果循環運行的每一個返回單個多列的表的郵政編碼的選擇查詢。將以下SELECT查詢合併到此函數中的最佳方法是什麼?
SELECT "NPI" FROM doc
WHERE "Provider Business Mailing Address Postal Code"='<ZIPCODERESULTS FROM BELOW>';
CREATE FUNCTION get_npizips (text) RETURNS TABLE(a char(5)) AS '
DECLARE
-- Declare aliases for user input.
npi_id ALIAS FOR $1;
-- Declare a variable to hold the zipcode
zipcode varchar;
BEGIN
SELECT INTO zipcode substring(provider_nodes.address_postal_code for 5) FROM provider_nodes
WHERE provider_nodes.npi = npi_id;
RETURN QUERY SELECT zcta FROM zctas WHERE ST_DWithin(
geom,
(
SELECT geom
FROM zctas
WHERE zcta = zipcode
),
7 * 1.6 * 1000
);
END;
'LANGUAGE 'plpgsql';
真棒!謝謝!沒有想到這樣:) – user2923767
@ user2923767:這是基於集合的思維方式,而不是程序性的。很難翻譯,必須重新考慮問題... –
選擇查詢可以正常工作。但是函數給了我這個錯誤:語法錯誤在「WHERE」處或附近 LINE 8:WHERE p.npi = $ 1; – user2923767