PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Créer des alias en masse ?

Vous recherchez * sous stéroïde. Malheureusement, il n'y a pas une telle fonctionnalité dans SQL .

Solution 1 :

Utilisez la puissance de la sélection de blocs dans votre éditeur de texte préféré (vim, atom,...). Placez chaque colonne dans une nouvelle ligne. Sélection de bloc pour écrire AS et préfixe de table. Bloquez ensuite la sélection et copiez les noms des colonnes.

Solution 2 :

Générer une liste de sélection à l'aide de 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

Vous pouvez utiliser E',\n' pour placer chaque colonne dans une nouvelle ligne.

Sortie :

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