Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助将T-SQL转换为PostgreSQL吗_Sql_Postgresql_Stored Functions - Fatal编程技术网

需要帮助将T-SQL转换为PostgreSQL吗

需要帮助将T-SQL转换为PostgreSQL吗,sql,postgresql,stored-functions,Sql,Postgresql,Stored Functions,我只想翻译一个简单的过程,返回特定区域(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转换它,但我经常会遇到语法错误。

我只想翻译一个简单的过程,返回特定区域(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;

PL/SQL与Oracle一起使用。为PostgreSQL重新表述您的标题和问题,并删除plsql标记。如果我想要一个只打印结果的过程(在PostgreSQL中使用),Postgres不是SQL Server,如果您想要返回一些内容,请使用函数。如果要“打印”结果,只需使用
select findgeoclients(42)