Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#1 Le 28/01/2013, à 10: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, à 13: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, à 13: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

En ligne

#4 Le 28/01/2013, à 14: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, à 14: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, à 14:35)

En ligne

#6 Le 28/01/2013, à 14: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