问题描述
我只想翻译一个返回特定区域 (area_id) 中客户端数量的简单过程,以便在 Postgresql 中使用它。
CREATE PROCEDURE findGeoClients
@area_id INT
AS
SELECT COUNT(*) AS clients_in_that_area
FROM clients
WHERE area_id = @area_id
我尝试使用 sqlines.com/online 对其进行转换,但我不断收到语法错误。
解决方法
过程并不意味着返回任何东西,你需要一个函数。但是您不需要为此使用 PL/pgSQL。一个简单的 SQL 函数就可以做到:
CREATE function findgeoclients(p_area_id int)
returns bigint
AS
$$
SELECT COUNT(*) AS clients_in_that_area
FROM clients
WHERE area_id = p_area_id;
$$
language sql
stable;