Blog Details

PIVOT TABLE - SQL

Dynamic pivot in SQL server


DECLARE @cols AS NVARCHAR(MAX),
        @query AS NVARCHAR(MAX);
			   
SELECT @cols = STUFF(
(
    SELECT "," + QUOTENAME(ColumnName)
    FROM yourtable
    GROUP BY ColumnName,
             id
    ORDER BY id
    FOR XML PATH(""), TYPE
).value(".", "NVARCHAR(MAX)"),1,1,"");


SET @query
    = N"SELECT " + @cols  + N" from  (select value, ColumnName from your table ) x pivot ( max(value) for ColumnName in (" + @cols + N")) p ";

Post Comment

Your email address will not be published. Required fields are marked *