PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 20/06/2012 10:05:06

TimmyP
Membre

Dupliquer les valeurs d'une ligne vers les autres

Bonjour à tous!

J'ai un petit... En fait gros problème!

J'ai une table contenant un grand nombre de données et j'aimerai copier - admettons - la ligne n°3 vers les lignes 1 & 2...

Prenons par exemple une table Test contenant les lignes suivantes:

   ------------------------------------------------------------------------------------------------------------------
  |                                                                 Table Test                                                               |
   ------------------------------------------------------------------------------------------------------------------
  |  clé | valeur 1 | valeur 2 | valeur 3 | valeur 4 | valeur 5 | valeur 6 | valeur 7 | valeur 8 | valeur 9 |
   ------------------------------------------------------------------------------------------------------------------
  |   1   |       1     |      1      |     1       |      1      |      1      |      1      |       1     |       1     |      1     |
   ------------------------------------------------------------------------------------------------------------------
  |   2   |       2     |      2      |     2       |      2      |      2      |      2      |       2     |       2     |      2     |
   ------------------------------------------------------------------------------------------------------------------
  |   3   |       3     |      3      |     3       |      3      |      3      |      3      |       3     |       3     |      3     |
   ------------------------------------------------------------------------------------------------------------------

Est-ce-que quelqu'un a déjà été confronté à ce cas de figure, et si oui, pourrais-je avoir une indication?
Merci d'avance à vous!

Cordialement,
TimmyP.

Hors ligne

#2 20/06/2012 13:26:43

flo
Membre

Re : Dupliquer les valeurs d'une ligne vers les autres

Si vous voulez juste copier les colonnes valeur1, valeur2, ... valeur9 pour la valeur de clé 3 vers la ligne de valeur de clé2, une solution pourrait être de ce style :

update testtable
set (val1, val2)  = (t2.val1, t2.val2)
     from testtable t2
    where t2.cle = 3 and testtable.cle = 2

Hors ligne

#3 21/06/2012 14:14:29

TimmyP
Membre

Re : Dupliquer les valeurs d'une ligne vers les autres

Trouvé! Bon, c'était tiré par les cheveux... J'ai fait un script de barbarre en bash et ça a marché du tonerre!

Merci quand même smile

Hors ligne

#4 21/06/2012 15:03:50

flo
Membre

Re : Dupliquer les valeurs d'une ligne vers les autres

C'est dommage que vous n'ayez pas dit ce que vous vouliez exactement.
Il est possible qu'il y ait eu une solution simple en SQL.
Par exemple si vous vouliez faire une copie de chaque ligne vers la "précédente" dans l'ordre des clés, ça se fait également.

Hors ligne

Pied de page des forums