Signaler

Transposer des colonnes en lignes [Résolu]

Posez votre question dipvlou - Dernière réponse le 29 sept. 2017 à 09:15 par dipvlou
Bonjour,

je cherche un moyen de transposer par le biais d'une seule requête (pas de procédure stockée) le contenu d'une table. Cette transposition me servira par la suite à l'insertion dans une autre table. Je m'explique :
(PS : sous oracle)

J'ai une table temporaire sous cette forme :
CREATE TABLE temporaire (
   id_client varchar2(5), 
   num1 varchar2(5),
   num2 varchar2(5),
   num3 varchar2(5)
);
insert into temporaire  ('A6352', 'test1', 'test2', 'test5');
insert into temporaire  ('B2360', NULL, 'test5', NULL);
insert into temporaire  ('C4596', 'test3', 'test2', '');

Je souhaite récupérer les données par une requête de sorte à avoir la forme
id_client | num
----------|----
A6352     | test1
A6352     | test2
A6352     | test5
B2360     | test5
C4596     | test3
C4596     | test2


J'avais pensé à faire des UNION, existe-t-il un autre moyen moins long dans le code ?
Utile
+0
plus moins
bonsoir, je pense que faire le UNION de trois requêtes est la bonne méthode.
dipvlou- 29 sept. 2017 à 02:02
Merci pour la reponse.
L'exemple de ce sujet montre 3 colonnes mais ma vraie table en comporte une vingtaine.
Utiliser le UNION pour 40000 lignes ne sera pas trop long ?
Répondre
yg_be 3526Messages postés lundi 9 juin 2008Date d'inscription ContributeurStatut 10 octobre 2017 Dernière intervention - 29 sept. 2017 à 08:00
je pense que c'est la bonne méthode pour 40000 lignes.
si tu ne cherches pas à éliminer les doublons, tu peux également le faire via 40 requêtes indépendantes.
Répondre
dipvlou- 29 sept. 2017 à 09:15
Ok, merci à toi !
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !