Transposer les lignes en colonnes dans SQL Server 2008 R2
Comment dois-je faire cela:
et ce:
dans cette:
dans SQL Server 2008 R2?
- Avez-vous entendu parler de pivot de la requête?
- Non, je n'ai pas. Peut-il être utile dans mon cas?
- Oh Pinaise. Supprimé mon commentaire! Mais je suis tranquille assurer que cette question a été répondu souvent ici DONC.
Vous devez vous connecter pour publier un commentaire.
Cette question est très similaire à celui PIVOT des lignes et des colonnes avec plus de 1 valeur renvoyée, où vous avez besoin d'agréger les données de chaîne à partir des lignes en colonnes. Je vais modifier cette réponse pour démontrer comment vous pouvez convertir les données de votre résultat final.
Depuis que vous êtes à l'agrégation des valeurs de chaîne, vous aurez besoin d'appliquer la
min()
oumax()
fonction d'agrégation, mais dans le but d'obtenir le résultat final pour afficher plus d'une ligne, vous besoin de quelque chose pour forcer les lignes multiples.Pour ce faire, vous devrez utiliser
row_number()
pour générer un numéro de séquence unique pour chaqueparameter
dans lename
. Lorsque vous appliquez la fonction de PIVOT, ce numéro sera utilisé dans le groupement et vous permettra de générer plusieurs lignes:Voir SQL jouer avec la Démo.
Cela pourrait aussi être écrit en utilisant une fonction d'agrégation avec une expression case:
Voir SQL jouer avec la Démo.
Les deux versions sont parfaits si vous avez connu un certain nombre de noms, alors vous pouvez coder en dur la requête, mais si vous ne le faites pas, alors vous devrez utiliser le SQL dynamique:
Voir SQL jouer avec la Démo. Toutes les versions de donner un résultat:
vehicletypes