Nous avons une table comme ci-dessous dans un serveur SQL 2005 db:T-SQL inverse Pivot sur tous les caractères d'une chaîne
event_id staff_id weeks
1 1 NNNYYYYNNYYY
1 2 YYYNNNYYYNNN
2 1 YYYYYYYYNYYY
Ceci est d'un logiciel de calendrier et revient à dire que les membres du personnel sont affecté à un événement (registre) et l'ensemble des semaines qu'ils enseignent ce registre. Donc, 1 n'est pas Nom employé enseignaient les 3 premières semaines de l'événement 1, mais l'enseignement de la 4 suivante ....
est-il un moyen facile de convertir en une forme plus facile, comme:
event_id staff_id week
1 1 4
1 1 5
1 1 6
1 1 7
1 1 10
1 1 11
1 1 12
1 2 1
1 2 2
1 2 3
1 2 7
1 2 8
1 2 9
2 1 1
2 1 2
2 1 3
2 1 4
2 1 5
2 1 6
2 1 7
2 1 8
2 1 10
2 1 11
2 1 12
La colonne 'week' aura-t-elle toujours douze caractères, ou pourrait-elle avoir une longueur quelconque? – LukeH
S'il s'agit d'un transfert de données ponctuel et que la vitesse n'est pas un problème, vous pouvez utiliser un curseur pour cela. Si vous avez besoin de cela de façon dynamique, je vous suggère de le faire dans votre code d'application plutôt que db !! – InSane
@LukeH Je l'ai raccourci, il est en fait 53 comme dans les semaines dans l'année (arrondi à la hausse), mais oui longueur fixe – PeteT