sql >> Database >  >> RDS >> PostgreSQL

Aliassen in bulk maken?

U zoekt naar * op steroïde. Helaas is er geen dergelijke functionaliteit in SQL .

Oplossing 1:

Gebruik de kracht van blokselectie in je favoriete teksteditor (vim,atom,...). Plaats elke kolom in een nieuwe rij. Blok selectie om AS te schrijven en tabelvoorvoegsel. Blokkeer vervolgens de selectie en kopieer kolomnamen.

Oplossing 2:

Genereer een selectielijst met 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

Je zou E',\n' . kunnen gebruiken om elke kolom in een nieuwe regel te plaatsen.

Uitgang:

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



  1. Rails:aanroepen van .limit(5) verandert de volgorde van de resultaten

  2. installeer zowel mysql als mysqlnd op ubuntu 12.04

  3. Hoe meerdere rijen in een JSON-tekenreeksvariabele te selecteren?

  4. Hoe drie tafels aan te sluiten op laravel welsprekend model