1

Temat: Dodawanie postfixa do każdej selectowanej kolumny.

Czy można zrobić jakoś tak:

 select tabela1.* as tabela1.*_postfix_1
        tabela2.* as tabela2.*_postfix_2

Chodzi o to że tabele te mogą mieć kolumny o takich samych nazwach, a nie chcę wypisywać każdej kolumny z osobna.

2

Odp: Dodawanie postfixa do każdej selectowanej kolumny.

Wykonaj poniższy select - generuje on gotowy SQL (select) w odpowiednim formacie, używa funkcji string_agg więc musisz mieć co najmniej 9 wersje postgresa (wygeneruje Ci tyle rekordów ile masz tabel w schemacie public), jak go dostosujesz do twoich potrzeb to będziesz miał to o co Ci chodzi

select
'select '||string_agg((select nspname from pg_namespace n where n.oid = r.relnamespace)||'.'||r.relname||'.'||c.attname||' as '||c.attname||'_'||r.relname,', ')||' from '||(select nspname from pg_namespace n where n.oid = r.relnamespace)||'.'||r.relname as kolumna
from pg_class r
join pg_attribute c on r.oid=c.attrelid
join pg_type t on c.atttypid=t.oid
where r.relkind = 'r' and (select nspname from pg_namespace n where n.oid = r.relnamespace)='public' and c.attnum>=0
group by r.relnamespace,r.relname
order by r.relnamespace,r.relname