J'ai une table comme celle-ci ...
CustomerID DBColumnName Data
--------------------------------------
1 FirstName Joe
1 MiddleName S
1 LastName Smith
1 Date 12/12/2009
2 FirstName Sam
2 MiddleName S
2 LastName Freddrick
2 Date 1/12/2009
3 FirstName Jaime
3 MiddleName S
3 LastName Carol
3 Date 12/1/2009
Et je veux ça ...
Est-ce possible avec PIVOT?
CustomerID FirstName MiddleName LastName Date
----------------------------------------------------------------------
1 Joe S Smith 12/12/2009
2 Sam S Freddrick 1/12/2009
3 Jaime S Carol 12/1/2009
sql
sql-server
tsql
pivot
pivot-without-aggregate
ctrlShiftBryan
la source
la source
Oui mais pourquoi !!??
la source
Pivot
dans ma requête, puis je suis passé à ceci et j'ai regardé le plan d'exécution pour exécuter les deux ensemble. Cette approche a coûté 8% et l'approche Pivot a pris 92%!Warning: Null value is eliminated by an aggregate or other SET operation
la source
SELECT
déclaration sous le CTE aurait pu simplement spécifier le nom de la table d'origine.Edit: J'ai écrit ceci sans éditeur et n'ai pas exécuté le SQL. J'espère que vous avez l'idée.
la source
Ok, désolé pour la mauvaise question. gbn m'a mis sur la bonne voie. C'est ce que je cherchais dans une réponse.
Ensuite, j'ai dû utiliser une instruction while et construire l'instruction ci-dessus en tant que varchar et utiliser dynmaic sql.
Utiliser quelque chose comme ça
Avoir un pour construire @fulltext en utilisant une boucle while et sélectionner les noms de colonnes distincts hors de la table. Merci pour les réponses.
la source
L'OP n'avait pas vraiment besoin de pivoter sans agrégation mais pour ceux d'entre vous qui viennent ici pour savoir comment voir:
requête cte paramétrée SQL
La réponse à cette question implique une situation où le pivot sans agrégation est nécessaire, donc un exemple de le faire fait partie de la solution.
la source
Essaye ça:
la source
Cela devrait fonctionner:
la source
Voici un excellent moyen de créer des champs dynamiques pour une requête pivot:
--summarize valeurs dans une table tmp
--- voir les champs générés
la source