Pages : 1
#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
merci de m'apporter vos lumières !
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
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
Hors 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 ?
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)
Hors ligne
#6 Le 28/01/2013, à 14:38
- Gryphus71
Re : Changer une table db2 en ligne : en colonnes.
Pas de sushi le pingouin
merci d'avoir essayé, comme on dit s'est l'intention qui compte !
Hors ligne
Pages : 1