PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Aliasse in großen Mengen erstellen?

Sie suchen nach * auf Steroiden. Leider gibt es in SQL keine solche Funktionalität .

Abhilfe 1:

Nutzen Sie die Kraft der Blockauswahl in Ihrem bevorzugten Texteditor (vim, atom, ...). Platziere jede Spalte in einer neuen Zeile. Blockauswahl zum Schreiben von AS und Tabellenpräfix. Blockieren Sie dann die Auswahl und kopieren Sie die Spaltennamen.

Abhilfe 2:

Auswahlliste mit INFORMATION_SCHEMA.COLUMNS generieren :

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

Sie könnten E',\n' verwenden um jede Spalte in einer neuen Zeile zu platzieren.

Ausgabe:

╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║                                                                                   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 ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝