Bonjour à tous,
je souhaiterais "normaliser" une table, c'est à dire passer les colonnes en lignes. Exemple:
table source:
id | Colonne 1 | Colonne 2 | Colonne 3 | ... | Colonne n
1 | blabla1 | toto1 | titi1 | tata1 | ... | tete1
2 | blabla2 | toto2 | titi2 | tata2 | ... | tete2
3 | blabla3 | toto3 | titi3 | tata3 | ... | tete3
table cible:
id | Champ normalisé | Valeur
1 | Colonne 1 | blabla1
1 | Colonne 2 | titi1
1 | Colonne 3 | tata1
1 | Colonne 4 | tete1
2 | Colonne 1 | blabla2
2 | Colonne 2 | titi2
2 | Colonne 3 | tata2
2 | Colonne 4 | tete2
j'ai cherché sur Google et j'ai trouvé la solution du union. dans l'exemple ci-dessus ca donnerait:
par contre dans la mesure où je ne connais pas d'avance le nombre de colonnes de la table, je doute que cela soit possible d'utiliser cette méthode...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT id, Colonne 1 AS Champ normalisé FROM table UNION SELECT id, Colonne 2 FROM table -- etc.
une idée ?
Merci par avance!
Partager