Disons que j'ai des données, que ce soit dans une table SQL Server 2008 ou une variable -typed [table]:Utilisation de PIVOT dans SQL Server 2008
author_id review_id question_id answer_id
88540 99001 1 719
88540 99001 2 720
88540 99001 3 721
88540 99001 4 722
88540 99001 5 723
36414 24336 1 302
36414 24336 2 303
36414 24336 3 304
36414 24336 4 305
36414 24336 5 306
Je veux récupérer les données comme un ensemble de résultats ressemble à ceci:
author_id review_id 1 2 3 4 5
88540 99001 719 720 721 722 723
36414 24336 302 303 304 305 306
Je soupçonne que l'opérateur PIVOT est ce que je dois (selon this post, de toute façon), mais je ne peux pas comprendre comment démarrer, surtout lorsque le nombre de question_id lignes dans la table peut varier. Dans l'exemple ci-dessus, il s'agit de 5, mais dans une autre requête, la table peut contenir 7 questions distinctes.
Cela semble être ce dont j'ai besoin. Je vais essayer et rendre compte - merci! –
Veuillez garder à l'esprit la sous-requête. Si vous utilisez simplement "SELECT * FROM YourTable", toutes les autres colonnes concernées affecteront le regroupement implicite fourni par la fonction PIVOT. Et si vous avez des erreurs, commentez la ligne 'exec', en la remplaçant par' select @ qry' –
Je n'utilise plus jamais [SELECT *] - j'indique toujours explicitement les colonnes auxquelles j'accède - donc ça ne sera pas un problème. Et oui, j'utilisais [select @qry] pendant un moment pour que je puisse voir/déboguer l'instruction SQL avant qu'elle ne s'exécute. Votre code a fonctionné comme promis - merci beaucoup pour votre aide! –