【发布时间】:2012-03-19 13:58:09
【问题描述】:
这里是 Postgres 新手。
我正在尝试将 SQL Server 存储过程转换为 Postgres 函数。目前无法弄清楚如何将此 SQL 行转换为 Postgres。
SQL 服务器:
input: @name = null
SELECT *
FROM table
WHERE name = ISNULL(@name, name)
Postgres:
input: n = null
SELECT *
FROM table
WHERE name = COALESCE(n, name)
我收到错误“第 n 列不存在”。如何在 Postgres 函数的 select 语句中引用参数?
更新:
Postgres 函数的定义
CREATE OR REPLACE FUNCTION fn_name (n VARCHAR(32) = NULL, name OUT varchar(32), description OUT varchar(64))
RETURNS setof record
AS
$$
SELECT u.name
, u.description
FROM table_a u
WHERE u.name = COALESCE(n, u.name);
$$
LANGUAGE sql;
【问题讨论】:
标签: sql postgresql stored-procedures