Postgres noobie here。如何引用Postgres sql函數中的命名參數?
我想將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語句中引用參數?
UPDATE:
的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;
每@a_horse_with_no_name的點上另一個答案,命名的支持自9.2 http://www.postgresql.org/docs/9.2/static/xfunc-sql.html#XFUNC-SQL-一直存在功能論點 – 2017-12-22 17:49:59