【发布时间】:2014-03-05 05:14:53
【问题描述】:
使用 PostgresSQL 9.3、OSX。
我已经将以下功能组合在一起。
令人震惊的是,它可以工作并根据位置返回一个邮政编码列表。
我现在想对这些结果进行 for/循环,对返回单个多列表的每个邮政编码运行选择查询。将以下 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';
【问题讨论】:
标签: sql function postgresql subquery plpgsql