SQL dynamique pour générer des noms de colonne?

J'ai une question où je suis en train de pivot des valeurs de ligne dans la colonne des noms et actuellement je suis en utilisant SUM(Case...) As 'ColumnName' états, comme suit:

SELECT
SKU1,
SUM(Case When Sku2=157 Then Quantity Else 0 End) As '157',
SUM(Case When Sku2=158 Then Quantity Else 0 End) As '158',
SUM(Case When Sku2=167 Then Quantity Else 0 End) As '167'
FROM
OrderDetailDeliveryReview
Group By
OrderShipToID,
DeliveryDate,
SKU1 

La requête ci-dessus fonctionne très bien et me donne exactement ce dont j'ai besoin. Cependant, je suis en train d'écrire le SUM(Case... déclarations la main sur la base des résultats de la requête suivante:

Select Distinct Sku2 From OrderDetailDeliveryReview 

Est-il un moyen, à l'aide de T-SQL à l'intérieur d'une procédure stockée, que je peux générer dynamiquement le SUM(Case... consolidés à partir de la Select Distinct Sku2 From OrderDetailDeliveryReview requête et ensuite exécuter l'résultant du code SQL?

OriginalL'auteur Ben McCormack | 2010-03-31