begin process at 2012 05 27 03:40:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Oracle

 > 

Requêtes

 > 

transposer 1 lignes/ncolonnes en n lignes/2colonnes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

transposer 1 lignes/ncolonnes en n lignes/2colonnes

mardi 31 mars 2009 à 17:47:54 | transposer 1 lignes/ncolonnes en n lignes/2colonnes

sybess

Bonjour,

J'aimerai transformer une ligne de plusieurs colonnes en n lignes composées du nom de la colonne avec la valeur associée.
En bref passé de :
colonnes   A   B   C   D
valeur        a    b    c   d

en:
colonnes    valeur
A               a
B               b  
C               c
D               d

Merci pour votre aide.
jeudi 4 août 2011 à 16:41:07 | Re : transposer 1 lignes/ncolonnes en n lignes/2colonnes

chloett

+1, Je voudrais bien savoir aussi
dimanche 7 août 2011 à 17:15:08 | Re : transposer 1 lignes/ncolonnes en n lignes/2colonnes

Robert33

Membre Club
Bonjour

En créant une requette à la volée, par l'utilisation d'un cursor
ça a ses limitations, mais dans certains cas ça peut aider.

Code sql :
DECLARE @ColumnName NVARCHAR(128)
DECLARE @Query NVARCHAR(4000)

--on recherche le nom des colonnes de la tables test1 via un cursor pour faire un itération
DECLARE mon_Cursor CURSOR FOR
	SELECT  syscolumns.name AS [COLUMN] FROM  syscolumns INNER JOIN sysobjects ON syscolumns.id = sysobjects.id WHERE (sysobjects.name = N'test1')

	OPEN mon_Cursor

		-- dans l'itération, on va construire une requette
		FETCH NEXT FROM mon_Cursor INTO @ColumnName
		-- au début la requette consiste en : le nom de la premiere colonne et la colonne ex: select 'A' as [column], A from test1
		set @Query=   ('select ''' + @ColumnName + ''' AS [COLUMN], '+@ColumnName+' AS [Value] from test1')

		-- pour les itérations suivante, on concatene la meme requette, mais sur les autres colonnes, avec une clause UNION ALL
		WHILE @@FETCH_STATUS = 0
		BEGIN
			FETCH NEXT FROM mon_Cursor INTO @ColumnName
			set @Query = @Query + ' Union all select ''' + @ColumnName + ''' AS [COLUMN], '+@ColumnName+' AS [Value] from test1'
		END
		CLOSE mon_Cursor
DEALLOCATE mon_Cursor
-- il ne reste plus qu'à executer le requette
exec  (@query)



Bob.
C# is amazing, enjoy it!


Cette discussion est classée dans : lignes, colonnes, transposer, ncolonnes, 2colonnes


Répondre à ce message

Sujets en rapport avec ce message

comment transposer les lignes en colonnes sur mysql [ par richishimwe ] bonjour, comment on transpose les donnes des lignes d'un tableau en colonnes.exemple: j'ai un tableau des cours, aves champs: coursid and coursnom et Passer de colonnes à lignes [ par Fianchetto ] Bonjour à tous, je suis sur une requete qui me pose des problèmes depuis quelques temps que je soumet à votre sagacité. Pour faire simple, j'ai une pr Clause Where différente [ par babe59 ] Bonjour,Je fais une procédure stockée sous SQL Server pour retourner une liste de records. J'aimerai passer un paramétre (@param) à cette proc pour re create dynamique de colonnes [ par stefsoft ] Bonjour,je crée un table dynamiquement dans ma procédure stockéeCREATE TABLE #table (id int, nom nvarchar(30))je veux lui ajouter des colonnes dynamiq Aide sur requete [ par Baguauda ] Bonjour à tous.Pour commencer une brève mise en cituation.Je dois bidouiller un requetes pour améliorer mes temps de reponses, car je travaille sur Sq creer une table de plus de 11 colonnes vers Access par programmation [ par romagny13 ] Bonjour,- j'utilise visual studio 2005 en C# et je passe par System.Data.OleDb pour executer ma requete  -lorsque j'execute une requete permettant de XML - XSD et SQLXMLBulkLoad [ par Troyan ] bonjour,j'utilise SQLXMLBulkLoad  pour insérer un fichier XML dans ma base SQL 2005ca marche impeccable il me créé bien les 2 tables dans ma base avec sum de colonnes [ par cudenetf ] bonjour,je cherche a faireselect sum(....) as som1,sum(;;;;;) as som2, som1+som2 as som3j'aimerais bien ne pas avoir a retaper tt ce que j'ai fait pou Renommer entrées colonne [ par Zobaree ] Salut à tous!J'amerais savoir s'il était possible de renommer toute les entrées d'une colonne par une suite de nombres. Par exemple ma colone actuelle Manipulation des champs OUI/NON [ par impact74 ] Bonjour à toutes et à tous !!!Je bloque sur un problème, je vais tenter d'être claire.J'ai une table dans access qui contient les colonnes : PC  | Ap


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,001 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales