我想创建一个PostgreSQL函数,它执行以下操作:
CREATE FUNCTION avg_purchases( IN last_names text[] DEFAULT '{}' )
RETURNS TABLE(last_name text[], avg_purchase_size double precision)
AS
$BODY$
DECLARE
qry text;
BEGIN
qry := 'SELECT last_name, AVG(purchase_size)
FROM purchases
WHERE last_name = ANY($1)
GROUP BY last_name'
RETURN QUERY EXECUTE qry USING last_names;
END;
$BODY$
Run Code Online (Sandbox Code Playgroud)
但我在这里看到两个问题:
当我这样做时,这当前返回零行:
SELECT avg_purchases($${'Brown','Smith','Jones'}$$);
Run Code Online (Sandbox Code Playgroud)我错过了什么?
arrays postgresql plpgsql aggregate-functions postgresql-9.2
我想通过在单个参数上传递多个值来调用函数,如下所示:
SELECT * FROM jobTitle('270,378');
Run Code Online (Sandbox Code Playgroud)
这是我的功能。
CREATE OR REPLACE FUNCTION test(int)
RETURNS TABLE (job_id int, job_reference int, job_job_title text
, job_status text) AS
$$
BEGIN
RETURN QUERY
select jobs.id,jobs.reference, jobs.job_title,
ltrim(substring(jobs.status,3,char_length(jobs.status))) as status
FROM jobs ,company c
WHERE jobs."DeleteFlag" = '0'
and c.id= jobs.id and c.DeleteFlag = '0' and c.active = '1'
and (jobs.id = $1 or -1 = $1)
order by jobs.job_title;
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
有人可以提供语法帮助吗?甚至提供示例代码?