需要帮助将 T-SQL 翻译成 PostgreSQL

问题描述

我只想翻译一个返回特定区域 (area_id) 中客户端数量的简单过程,以便在 Postgresql 中使用它。

T-sql 中的代码是:

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;