0
好了,所以我用了一个string_agg这样。在PLPGSQL函数中使用变量
select string_agg(DISTINCT first_name,', ' ORDER BY first_name) FROM person_test;
然后我写这个的值返回到表。
SELECT *
FROM person_test
where first_name = ANY(string_to_array('Aaron,Anne', ','));
现在我希望把这个功能,这样不是把acturally名进入string_to_array,我可以叫string_agg。
我是新来的Postgres和我没有找到如何做到这一点的在线任何好的文档。我相信我将不得不宣布该string_agg然后调用它在string_to_array,但我有没有这样的运气。
这是我的尝试,我知道这是正确的现在,但如果任何人都可以添加一些反馈。我收到了结果和ALAIS之间的差错,并且返回。
create or REPLACE FUNCTION select_persons(VARIADIC names TEXT[]);
declare results ALIAS select string_agg(DISTINCT first_name,', ' ORDER BY first_name) FROM person_test;
BEGIN
return setof person_test LANGUAGE sql as $$
select * from person_test
where first_name = any(results)
end;
$$ language sql;
是工作正常的事,但我想这样做,基本上宣告string_agg作为一个变量,所以当我想打电话给多行我可以只调用变量,而不必输入这种方式他们所有的名字。 –
这正是我想要的东西! –