首页 > 数据库 > mysql教程 > SQL Server 的 PIVOT 运算符如何将行转置为列?

SQL Server 的 PIVOT 运算符如何将行转置为列?

Linda Hamilton
发布: 2024-12-17 13:49:11
原创
204 人浏览过

How Can SQL Server's PIVOT Operator Transpose Rows into Columns?

使用 SQL Server Pivot 将行转换为列?

在 SQL Server 中,PIVOT 运算符是用于从行重新组织表格数据的强大工具到列。当您需要汇总给定列集的多行数据时,它特别有用。

为了说明这一点,请考虑下表:

| Name1 | Name2 | Value |
|---|---|---|
| A     | P1     | 1     |
| A     | P2     | 1     |
| A     | P3     | 2     |
| B     | P1     | 3     |
| B     | P2     | 1     |
| B     | P4     | 1     |
登录后复制

假设我们要对此进行转换将数据转换为以下格式:

|       | A     | B     |
|---|---|---|
| P1     | 1     | 4     |
| P2     | 1     | 1     |
| P3     | 2     | NULL  |
| P4     | NULL  | 1     |
登录后复制

要实现此转换,我们可以利用 PIVOT 运算符作为如下:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )
登录后复制

通过动态组装查询,此方法允许我们使用不同的列集来透视数据,从而提供灵活且可扩展的解决方案。

以上是SQL Server 的 PIVOT 运算符如何将行转置为列?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板