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作爲一個變量,所以當我想打電話給多行我可以只調用變量,而不必輸入這種方式他們所有的名字。 –
這正是我想要的東西! –