\gset には 1 行の結果をしか格納できないが、string_aggr を使ってカンマ区切り文字列にし、string_to_array で展開して使うという工夫で次のように使用できる。
-- 普通の変数代入 \set target_user_id '01234567-89ab-cdef-0123-456789abcdef' -- SELECT 結果を \gset を 使って post_ids という名前で格納 SELECT string_agg(id::text, ',') as post_ids FROM post WHERE auther_id = :'target_user_id' \gset -- 変数に格納した値を使う SELECT * FROM post_detail WHERE post_id = ANY(string_to_array(:'post_ids', ',')::uuid[]);