Introduction. In this article, we will show How to convert rows to columns using Dynamic Pivot in SQL Server. The demo in this article based on a database from the TechNet Gallery. May 30, 2015 · In this Article will present how we can write a Dynamic PIVOT query with an example, where we don’t need to mention the PIVOT columns each unique values and no need to worry if PIVOT column gets extra unique values after the initial query. ALSO READ: PIVOT and UNPIVOT in Sql Server Static PIVOT queries are fine as long as we know that the PIVOT column values never change, for instance if PIVOT column values are MONTH or Day of the Week or hour of the day etc. To make the above Static PIVOT query to dynamic, basically we have to remove the hardcoded PIVOT column names specified in the PIVOT operators PIVOT columns IN clause. If you pass this dynamic query to your pivot, then your pivot columns will display dynamically. The below SQL script creates the stored procedure which returns pivot table as output. If you are going to have an unknown number of columns that you will need to unpivot, then you will have to look at implementing dynamic SQL. You can use sys.columns to get the names of all of the columns in your cal table. If you use the following query you will get the list of all of the columns in your table: Pivoting is a common reporting requirement - data is stored in columns and you need to present it in rows. This was a nice feature that was added to SQL Server, but you don't always know all of the values you need to pivot on.