{"id":1724,"date":"2019-04-15T10:22:29","date_gmt":"2019-04-15T03:22:29","guid":{"rendered":"http:\/\/www.sqlservertutorial.net\/?page_id=1724"},"modified":"2020-07-09T17:33:40","modified_gmt":"2020-07-09T10:33:40","slug":"sql-server-pivot","status":"publish","type":"page","link":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/","title":{"rendered":"SQL Server PIVOT"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you will learn how to use the SQL Server <code>PIVOT<\/code> operator to convert rows to columns.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id='setting-up-the-goals'>Setting up the goals <a href=\"#setting-up-the-goals\" class=\"anchor\" id=\"setting-up-the-goals\" title=\"Anchor for Setting up the goals\">#<\/a><\/h2>\n\n\n\n<p>For the demonstration, we will use the <code>production.products<\/code> and <code>production.categories<\/code> tables from the <a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-sample-database\/\">sample database<\/a>:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"169\" src=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/products-categories.png\" alt=\"\" class=\"wp-image-145\" srcset=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/products-categories.png 494w, https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/products-categories-300x103.png 300w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><\/figure>\n\n\n\n<p>The following query finds the number of products for each product category:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">SELECT<\/span> \n    category_name, \n    <span class=\"hljs-keyword\">COUNT<\/span>(product_id) product_count\n<span class=\"hljs-keyword\">FROM<\/span> \n    production.products p\n    <span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> production.categories c \n        <span class=\"hljs-keyword\">ON<\/span> c.category_id = p.category_id\n<span class=\"hljs-keyword\">GROUP<\/span> <span class=\"hljs-keyword\">BY<\/span> \n    category_name;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here is the output:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"193\" height=\"152\" src=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-GROUP-BY-with-COUNT.png\" alt=\"\" class=\"wp-image-1725\"\/><\/figure>\n\n\n\n<p>Our goal is to turn the category names from the first column of the output into multiple columns and count the number of products for each category name as the following picture:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"40\" src=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example.png\" alt=\"\" class=\"wp-image-1726\" srcset=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example.png 642w, https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example-300x19.png 300w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><\/figure>\n\n\n\n<p>In addition, we can add the model year to group the category by model year as shown in the following output:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"714\" height=\"96\" src=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example-2.png\" alt=\"\" class=\"wp-image-1727\" srcset=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example-2.png 714w, https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example-2-300x40.png 300w\" sizes=\"auto, (max-width: 714px) 100vw, 714px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id='introduction-to-sql-server-pivot-operator'>Introduction to SQL Server PIVOT operator <a href=\"#introduction-to-sql-server-pivot-operator\" class=\"anchor\" id=\"introduction-to-sql-server-pivot-operator\" title=\"Anchor for Introduction to SQL Server &lt;code&gt;PIVOT&lt;\/code&gt; operator\">#<\/a><\/h2>\n\n\n\n<p>SQL Server <code>PIVOT<\/code> operator rotates a table-valued expression. It turns the unique values in one column into multiple columns in the output and performs aggregations on any remaining column values.<\/p>\n\n\n\n<p>You follow these steps to make a query a pivot table:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>First, select a base dataset for pivoting.<\/li><li>Second, create a temporary result by using a derived table or <a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-cte\/\">common table expression<\/a> (CTE)<\/li><li>Third, apply the <code>PIVOT<\/code> operator.<\/li><\/ul>\n\n\n\n<p>Let&#8217;s apply these steps in the following example.<\/p>\n\n\n\n<p>First, select category name and product id from the <code>production.products<\/code> and <code>production.categories<\/code> tables as the base data for pivoting:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">SELECT<\/span> \n    category_name, \n    product_id\n<span class=\"hljs-keyword\">FROM<\/span> \n    production.products p\n    <span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> production.categories c \n        <span class=\"hljs-keyword\">ON<\/span> c.category_id = p.category_id\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, create a temporary result set using a derived table:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">SELECT<\/span> * <span class=\"hljs-keyword\">FROM<\/span> (\n    <span class=\"hljs-keyword\">SELECT<\/span> \n        category_name, \n        product_id\n    <span class=\"hljs-keyword\">FROM<\/span> \n        production.products p\n        <span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> production.categories c \n            <span class=\"hljs-keyword\">ON<\/span> c.category_id = p.category_id\n) t\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Third, apply the <code>PIVOT<\/code> operator:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">SELECT<\/span> * <span class=\"hljs-keyword\">FROM<\/span>   \n(\n    <span class=\"hljs-keyword\">SELECT<\/span> \n        category_name, \n        product_id\n    <span class=\"hljs-keyword\">FROM<\/span> \n        production.products p\n        <span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> production.categories c \n            <span class=\"hljs-keyword\">ON<\/span> c.category_id = p.category_id\n) t \n<span class=\"hljs-keyword\">PIVOT<\/span>(\n    <span class=\"hljs-keyword\">COUNT<\/span>(product_id) \n    <span class=\"hljs-keyword\">FOR<\/span> category_name <span class=\"hljs-keyword\">IN<\/span> (\n        &#91;Children Bicycles], \n        &#91;Comfort Bicycles], \n        &#91;Cruisers Bicycles], \n        &#91;Cyclocross Bicycles], \n        &#91;Electric Bikes], \n        &#91;Mountain Bikes], \n        &#91;Road Bikes])\n) <span class=\"hljs-keyword\">AS<\/span> pivot_table;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This query generates the following output:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"40\" src=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example.png\" alt=\"\" class=\"wp-image-1726\" srcset=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example.png 642w, https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example-300x19.png 300w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><\/figure>\n\n\n\n<p>Now, any additional column which you add to the select list of the query that returns the base data will automatically form row groups in the pivot table. For example, you can add the model year column to the above query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">SELECT<\/span> * <span class=\"hljs-keyword\">FROM<\/span>   \n(\n    <span class=\"hljs-keyword\">SELECT<\/span> \n        category_name, \n        product_id,\n        model_year\n    <span class=\"hljs-keyword\">FROM<\/span> \n        production.products p\n        <span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> production.categories c \n            <span class=\"hljs-keyword\">ON<\/span> c.category_id = p.category_id\n) t \n<span class=\"hljs-keyword\">PIVOT<\/span>(\n    <span class=\"hljs-keyword\">COUNT<\/span>(product_id) \n    <span class=\"hljs-keyword\">FOR<\/span> category_name <span class=\"hljs-keyword\">IN<\/span> (\n        &#91;Children Bicycles], \n        &#91;Comfort Bicycles], \n        &#91;Cruisers Bicycles], \n        &#91;Cyclocross Bicycles], \n        &#91;Electric Bikes], \n        &#91;Mountain Bikes], \n        &#91;Road Bikes])\n) <span class=\"hljs-keyword\">AS<\/span> pivot_table;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here is the output:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"714\" height=\"96\" src=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example-2.png\" alt=\"\" class=\"wp-image-1727\" srcset=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example-2.png 714w, https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/SQL-Server-PIVOT-example-2-300x40.png 300w\" sizes=\"auto, (max-width: 714px) 100vw, 714px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id='generating-column-values'>Generating column values <a href=\"#generating-column-values\" class=\"anchor\" id=\"generating-column-values\" title=\"Anchor for Generating column values\">#<\/a><\/h2>\n\n\n\n<p>In the above query, you had to type each category name in the parentheses after the <code><a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-in\/\">IN<\/a><\/code> operator manually. To avoid this, you can use the <code><a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-string-functions\/sql-server-quotename-function\/\">QUOTENAME()<\/a><\/code> function to generate the category name list and copy them over the query.<\/p>\n\n\n\n<p>First, generate the category name list:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">DECLARE<\/span> \n    @<span class=\"hljs-keyword\">columns<\/span> <span class=\"hljs-keyword\">NVARCHAR<\/span>(<span class=\"hljs-keyword\">MAX<\/span>) = <span class=\"hljs-string\">''<\/span>;\n\n<span class=\"hljs-keyword\">SELECT<\/span> \n    @<span class=\"hljs-keyword\">columns<\/span> += <span class=\"hljs-keyword\">QUOTENAME<\/span>(category_name) + <span class=\"hljs-string\">','<\/span>\n<span class=\"hljs-keyword\">FROM<\/span> \n    production.categories\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> \n    category_name;\n\n<span class=\"hljs-keyword\">SET<\/span> @<span class=\"hljs-keyword\">columns<\/span> = <span class=\"hljs-keyword\">LEFT<\/span>(@<span class=\"hljs-keyword\">columns<\/span>, <span class=\"hljs-keyword\">LEN<\/span>(@<span class=\"hljs-keyword\">columns<\/span>) - <span class=\"hljs-number\">1<\/span>);\n\nPRINT @columns;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The output will look like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-attr\">&#91;Children Bicycles]<\/span>,<span class=\"hljs-selector-attr\">&#91;Comfort Bicycles]<\/span>,<span class=\"hljs-selector-attr\">&#91;Cruisers Bicycles]<\/span>,<span class=\"hljs-selector-attr\">&#91;Cyclocross Bicycles]<\/span>,<span class=\"hljs-selector-attr\">&#91;Electric Bikes]<\/span>,<span class=\"hljs-selector-attr\">&#91;Mountain Bikes]<\/span>,<span class=\"hljs-selector-attr\">&#91;Road Bikes]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this snippet:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>The <a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-string-functions\/sql-server-quotename-function\/\"><code>QUOTENAME()<\/code><\/a> function wraps the category name by the square brackets e.g., <code>[Children Bicycles]<\/code><\/li><li>The <code><a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-string-functions\/sql-server-left-function\/\">LEFT()<\/a><\/code> function removes the last comma from the @columns string.<\/li><\/ul>\n\n\n\n<p>Second, copy the category name list from the output and paste it to the query.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id='dynamic-pivot-tables'>Dynamic pivot tables <a href=\"#dynamic-pivot-tables\" class=\"anchor\" id=\"dynamic-pivot-tables\" title=\"Anchor for Dynamic pivot tables\">#<\/a><\/h2>\n\n\n\n<p>If you add a new category name to the <code>production.categories<\/code> table, you need to rewrite your query, which is not ideal. To avoid doing this, you can use dynamic SQL to make the pivot table dynamic.<\/p>\n\n\n\n<p>In this query, instead of passing a fixed list of category names to the <code>PIVOT<\/code> operator, we construct the category name list and pass it to an SQL statement, and then execute this statement dynamically using the stored procedure <code>sp_executesql<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">DECLARE<\/span> \n    @<span class=\"hljs-keyword\">columns<\/span> <span class=\"hljs-keyword\">NVARCHAR<\/span>(<span class=\"hljs-keyword\">MAX<\/span>) = <span class=\"hljs-string\">''<\/span>, \n    @<span class=\"hljs-keyword\">sql<\/span>     <span class=\"hljs-keyword\">NVARCHAR<\/span>(<span class=\"hljs-keyword\">MAX<\/span>) = <span class=\"hljs-string\">''<\/span>;\n\n<span class=\"hljs-comment\">-- select the category names<\/span>\n<span class=\"hljs-keyword\">SELECT<\/span> \n    @<span class=\"hljs-keyword\">columns<\/span>+=<span class=\"hljs-keyword\">QUOTENAME<\/span>(category_name) + <span class=\"hljs-string\">','<\/span>\n<span class=\"hljs-keyword\">FROM<\/span> \n    production.categories\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> \n    category_name;\n\n<span class=\"hljs-comment\">-- remove the last comma<\/span>\n<span class=\"hljs-keyword\">SET<\/span> @<span class=\"hljs-keyword\">columns<\/span> = <span class=\"hljs-keyword\">LEFT<\/span>(@<span class=\"hljs-keyword\">columns<\/span>, <span class=\"hljs-keyword\">LEN<\/span>(@<span class=\"hljs-keyword\">columns<\/span>) - <span class=\"hljs-number\">1<\/span>);\n\n<span class=\"hljs-comment\">-- construct dynamic SQL<\/span>\n<span class=\"hljs-keyword\">SET<\/span> @<span class=\"hljs-keyword\">sql<\/span> =<span class=\"hljs-string\">'\nSELECT * FROM   \n(\n    SELECT \n        category_name, \n        model_year,\n        product_id \n    FROM \n        production.products p\n        INNER JOIN production.categories c \n            ON c.category_id = p.category_id\n) t \nPIVOT(\n    COUNT(product_id) \n    FOR category_name IN ('<\/span>+ @<span class=\"hljs-keyword\">columns<\/span> +<span class=\"hljs-string\">')\n) AS pivot_table;'<\/span>;\n\n<span class=\"hljs-comment\">-- execute the dynamic SQL<\/span>\n<span class=\"hljs-keyword\">EXECUTE<\/span> sp_executesql @<span class=\"hljs-keyword\">sql<\/span>;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this tutorial, you have learned how to use the SQL Server <code>PIVOT<\/code> table to convert rows to columns.<\/p>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"1724\"\n\t\t\t\tdata-post-url=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/\"\n\t\t\t\tdata-post-title=\"SQL Server PIVOT\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"1724\"\n\t\t\t\tdata-post-url=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/\"\n\t\t\t\tdata-post-title=\"SQL Server PIVOT\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you will learn how to use the SQL Server PIVOT operator to convert rows to columns.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":100,"menu_order":45,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1724","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SQL Server PIVOT Operator Explained Clearly By Practical Examples<\/title>\n<meta name=\"description\" content=\"This tutorial shows you step by step how to use the SQL Server PIVOT operator to convert rows to columns.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server PIVOT Operator Explained Clearly By Practical Examples\" \/>\n<meta property=\"og:description\" content=\"This tutorial shows you step by step how to use the SQL Server PIVOT operator to convert rows to columns.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/\" \/>\n<meta property=\"og:site_name\" content=\"SQL Server Tutorial\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-09T10:33:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/products-categories.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-pivot\\\/\",\"url\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-pivot\\\/\",\"name\":\"SQL Server PIVOT Operator Explained Clearly By Practical Examples\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-pivot\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-pivot\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/wp-content\\\/uploads\\\/products-categories.png\",\"datePublished\":\"2019-04-15T03:22:29+00:00\",\"dateModified\":\"2020-07-09T10:33:40+00:00\",\"description\":\"This tutorial shows you step by step how to use the SQL Server PIVOT operator to convert rows to columns.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-pivot\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-pivot\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-pivot\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/wp-content\\\/uploads\\\/products-categories.png\",\"contentUrl\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/wp-content\\\/uploads\\\/products-categories.png\",\"width\":494,\"height\":169},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/sql-server-pivot\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server Basics\",\"item\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/sql-server-basics\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SQL Server PIVOT\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/#website\",\"url\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/\",\"name\":\"SQL Server Tutorial\",\"description\":\"The Practical SQL Server Tutorial\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.sqlservertutorial.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQL Server PIVOT Operator Explained Clearly By Practical Examples","description":"This tutorial shows you step by step how to use the SQL Server PIVOT operator to convert rows to columns.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server PIVOT Operator Explained Clearly By Practical Examples","og_description":"This tutorial shows you step by step how to use the SQL Server PIVOT operator to convert rows to columns.","og_url":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/","og_site_name":"SQL Server Tutorial","article_modified_time":"2020-07-09T10:33:40+00:00","og_image":[{"url":"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/products-categories.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/","url":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/","name":"SQL Server PIVOT Operator Explained Clearly By Practical Examples","isPartOf":{"@id":"https:\/\/www.sqlservertutorial.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/#primaryimage"},"image":{"@id":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/products-categories.png","datePublished":"2019-04-15T03:22:29+00:00","dateModified":"2020-07-09T10:33:40+00:00","description":"This tutorial shows you step by step how to use the SQL Server PIVOT operator to convert rows to columns.","breadcrumb":{"@id":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/#primaryimage","url":"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/products-categories.png","contentUrl":"https:\/\/www.sqlservertutorial.net\/wp-content\/uploads\/products-categories.png","width":494,"height":169},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-pivot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlservertutorial.net\/"},{"@type":"ListItem","position":2,"name":"SQL Server Basics","item":"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/"},{"@type":"ListItem","position":3,"name":"SQL Server PIVOT"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlservertutorial.net\/#website","url":"https:\/\/www.sqlservertutorial.net\/","name":"SQL Server Tutorial","description":"The Practical SQL Server Tutorial","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlservertutorial.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/pages\/1724","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/comments?post=1724"}],"version-history":[{"count":1,"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/pages\/1724\/revisions"}],"predecessor-version":[{"id":2595,"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/pages\/1724\/revisions\/2595"}],"up":[{"embeddable":true,"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/pages\/100"}],"wp:attachment":[{"href":"https:\/\/www.sqlservertutorial.net\/wp-json\/wp\/v2\/media?parent=1724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}