sql >> Databáze >  >> RDS >> PostgreSQL

Předřadit název tabulky ke každému sloupci v sadě výsledků v SQL? (konkrétně Postgres)

Vím, že tato otázka je trochu stará, ale možná někdo narazí na odpověď a pomůže mu to.

Správný způsob, jak udělat to, co hledáte, je vytvořit a použít zobrazení. Ano, bude to trochu zdlouhavé jednorázově vypisovat všechny ty nové názvy sloupců jako aliasy, ale pokud je sloupců hodně, zde je trik, který můžete použít k využití metadat PostgreSQL k vypsání textu pohledu:

select 'CREATE OR REPLACE VIEW people AS SELECT ' || 
(select string_agg(column_name || ' AS person_' || column_name, ', ')
from information_schema.columns
where table_name = 'person'
group by table_name) || 
' FROM person;';

spuštěním tohoto výsledku:

?column?                                                 
------------------------------------------------------------------------------------------------------------- 
CREATE OR REPLACE VIEW people AS SELECT last_name AS person_last_name, first_name AS person_first_name FROM person; 

1 record(s) selected [Fetch MetaData: 0/ms] [Fetch Data: 0/ms]
[Executed: 4/21/12 2:05:21 PM EDT ] [Execution: 9/ms]

pak můžete zkopírovat a spustit výsledky a voila:

select * from people;

 person_last_name     person_first_name    
 -------------------  -------------------- 
 Melvoin              Wendy                
 Coleman              Lisa                 

 2 record(s) selected [Fetch MetaData: 1/ms] [Fetch Data: 0/ms] 


  1. Aktualizujte pole PostgreSQL pomocí SQLAlchemy

  2. Jak získat datum ze sady výsledků

  3. Nulová hodnota JPA Spring Data ve sloupci xxx porušuje omezení nenulové hodnoty na sériovém sloupci s postgresql

  4. Nejjednodušší způsob, jak přidat více mezer do řetězce v MySQL – SPACE()