Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 28/01/2013, à 09:33

Gryphus71

Changer une table db2 en ligne : en colonnes.

Bonjour,

je dispose d'une table qui ressemble en résumé à :
1 A A1 A2 A3 A4 A5 ... A36
2 B B1 B2 B3 B4 B5 ... B36
3 C C1 C2 C3 C4 C5 ... C36
4 D D1 D2 D3 D4 D5 ... D36
5 E E1 E2 E3 E4 E5 ... E 36
que je souhaite obtenir sous la forme
1 A A1
2 A A2
3 A A3
4 A A4
5 A A5
6 B B1
7 B B2
8 B B3
9 B B4
10 B B5
11 C C1
...

est ce faisable ? je ne trouve pas comment, ça me parrait pourtant simple à première vue hmm
merci de m'apporter vos lumières ! wink

Hors ligne

#2 Le 28/01/2013, à 12:15

Gryphus71

Re : Changer une table db2 en ligne : en colonnes.

Pour info la forme nominale de la table était :
row | col1 | tcol2
1 | A | A1#A2#A3#...#A36
2 | B | B1#B2#B3#...#B36
3...

j'ai réussi à découper cette 3° colonne en plusieurs colonnes
mais je ne sais pas si mon idée serait faisable sad

Hors ligne

#3 Le 28/01/2013, à 12:51

pingouinux

Re : Changer une table db2 en ligne : en colonnes.

Bonjour,

$ cat fichier
1 | A | A1#A2#A3#A36
2 | B | B1#B2#B3#B36
3 | C | C1#C2#C3#C36
$ awk -F"|" '{
> split($3,cols,"#")
> for (i=1;i<=length(cols);++i) { ++k; printf("%3d %s %s\n",k,$2,cols[i]) }
> }' fichier
  1  A   A1
  2  A  A2
  3  A  A3
  4  A  A36
  5  B   B1
  6  B  B2
  7  B  B3
  8  B  B36
  9  C   C1
 10  C  C2
 11  C  C3
 12  C  C36

Hors ligne

#4 Le 28/01/2013, à 13:25

Gryphus71

Re : Changer une table db2 en ligne : en colonnes.

split n'existe pas en db2 et ça ne me parrait pas êter de la requête ce que tu m'as proposé.
Merci quand même, try again ? smile

Hors ligne

#5 Le 28/01/2013, à 13:35

pingouinux

Re : Changer une table db2 en ligne : en colonnes.

Je ne connais pas db2, et croyais qu'il s'agissait d'un fichier texte. C'est la commande awk que je te proposais. Désolé.

Dernière modification par pingouinux (Le 28/01/2013, à 13:35)

Hors ligne

#6 Le 28/01/2013, à 13:38

Gryphus71

Re : Changer une table db2 en ligne : en colonnes.

Pas de sushi le pingouin wink
merci d'avoir essayé, comme on dit s'est l'intention qui compte ! smile

Hors ligne

Haut de page ↑