PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Creare alias in blocco?

Cerchi * sotto steroidi. Sfortunatamente non esiste tale funzionalità in SQL .

Soluzione alternativa 1:

Usa la potenza della selezione dei blocchi nel tuo editor di testo preferito (vim,atom,...). Posiziona ogni colonna in una nuova riga. Blocca la selezione per scrivere AS e prefisso tabella. Quindi blocca la selezione e copia i nomi delle colonne.

Soluzione alternativa 2:

Genera elenco di selezione utilizzando INFORMATION_SCHEMA.COLUMNS :

SELECT 
 string_agg(FORMAT('%s.%s AS %s_%s', "table_name",
                   column_name,"table_name", column_name), ', ')
FROM information_schema.columns
WHERE "table_name" IN ('products', 'taxes', 'categories');

SqlFiddleDemo

Potresti usare E',\n' per posizionare ogni colonna in una nuova riga.

Uscita:

╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║                                                                                   string_agg                                                                                   ║
╠════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╣
║ products.id AS products_id, products.name AS products_name, taxes.id AS taxes_id, taxes.name AS taxes_name, categories.id AS categories_id, categories.name AS categories_name ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝