PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dołączyć nazwę tabeli do każdej kolumny w zestawie wyników w SQL? (w szczególności Postgres)

Wiem, że to pytanie jest trochę stare, ale być może ktoś natknie się na odpowiedź i to mu pomoże.

Właściwym sposobem na zrobienie tego, czego szukasz, jest utworzenie i użycie widoku. Tak, jednorazowe wpisanie wszystkich nowych nazw kolumn jako aliasów będzie trochę żmudne, ale jeśli jest dużo kolumn, oto sztuczka, której możesz użyć, aby wykorzystać metadane PostgreSQL do napisania tekstu widoku:

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;';

uruchomienie tego daje:

?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]

następnie możesz skopiować i wykonać wyniki i 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zarządzanie zamrażaniem w PostgreSQL

  2. Nie można zatwierdzić, gdy włączony jest wyjątek automatycznego zatwierdzania podczas pracy z CachedRowSet w JDBC

  3. Optymalizacja szybkości bazy danych:kilka tabel z wieloma wierszami czy wiele tabel z kilkoma wierszami?

  4. Konwersja Oracle SQL Select do PostgreSQL select

  5. PostgreSQL - Zwróć zawartość wiersza, gdy UPDATE nie powiedzie się