SQL SQL Server多列unpivot

SQL SQL Server多列unpivot

在本文中,我们将介绍如何在SQL Server中使用unpivot函数来将多列转换为行。

阅读更多:SQL 教程

什么是unpivot函数?

SQL Server中,unpivot函数是一种将多列转换为行的技术。当我们需要对数据进行透视操作时,有时会遇到需要将多列数据转换为行的情况。unpivot函数可以将多个列的数据转换为对应的行,以便更好地进行数据分析和处理。

如何使用unpivot函数?

在SQL Server中,可以使用unpivot函数来实现多列转行的操作。unpivot函数的语法如下:

SELECT <列名> FROM <表名> 
UNPIVOT (<新列名> FOR <旧列名> IN (<1>, <2>, ..., <n>)) AS <别名>
SQL

其中,<列名>表示要查询的列名,<表名>表示要查询的表名,<新列名>表示转换后的新列名,<旧列名>表示要转换的列名,<列1>, <列2>,...,<列n>表示要转换的列,<别名>表示转换后的表别名。

示例

假设有一个Sales表,包含了销售数据,其中有四个不同产品的销售量和销售金额,如下所示:

+--------+--------+---------+---------+
| 日期    | 产品1  | 产品2   | 产品3   |
+--------+--------+---------+---------+
| 11 | 10     | 20      | 15      |
| 12 | 8      | 15      | 20      |
| 13 | 12     | 25      | 18      |
+--------+--------+---------+---------+
Plaintext

现在我们想要将这个表转换成以下格式:

+--------+--------+---------+
| 日期    | 产品    | 销售量   |
+--------+--------+---------+
| 11 | 产品1  | 10      |
| 11 | 产品2  | 20      |
| 11 | 产品3  | 15      |
| 12 | 产品1  | 8       |
| 12 | 产品2  | 15      |
| 12 | 产品3  | 20      |
| 13 | 产品1  | 12      |
| 13 | 产品2  | 25      |
| 13 | 产品3  | 18      |
+--------+--------+---------+
Plaintext

要实现上述转换,可以使用unpivot函数,如下所示:

SELECT [日期], [产品], [销售量]
FROM Sales
UNPIVOT ([销售量] FOR [产品] IN ([产品1], [产品2], [产品3])) AS unpvt
SQL

执行以上SQL语句后,将得到转换后的表格。

总结

本文介绍了在SQL Server中使用unpivot函数将多列转换为行的方法。通过unpivot函数,我们可以方便地将表格中的多个列转换为对应的行,以便更好地进行数据分析和处理。通过本文的示例,我们可以看到unpivot函数的使用步骤和语法,希望对您在SQL Server中进行数据转换和处理时有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册