繁体   English   中英

使用 SQL 列在 SQL 中进行数据透视

[英]Data Pivoting in SQL using columns of SQL

以下是表结构,下面是所需的输出。

请按运行代码片段查看表结构。

 <html> <body> <strong>Existing Structure</strong> <br> <br> <table style="width:100%"> <tr> <th>VoucherID</th> <th>ColumnName</th> <th>ColumnValue</th> </tr> <tr> <td>10</td> <td>Buyer Name</td> <td>Mr. ABC</td> </tr> <tr> <td>10</td> <td>Buyer Address</td> <td>Vasant Vihar</td> </tr> <tr> <td>10</td> <td>Buyer City</td> <td>New Delhi</td> </tr> <tr> <td>10</td> <td>Buyer Email</td> <td>email@gmail.com</td> </tr> </table> <br> <strong>I want output as follow:-</strong> <br> <br> <table style="width:100%"> <tr> <th>VoucherID</th> <th>Buyer Name</th> <th>BuyerAddress</th> <th>BuyerCity</th> <th>BuyerEmail</th> </tr> <tr> <td>10</td> <td>Mr. ABC</td> <td>Vasant Vihar</td> <td>New Delhi</td> <td>email@gmail.com</td> </tr> </table> </body> </html>

嗨,我正在使用 SQL Server 2016。从“dbo.TransactionDetails.ColumnName”创建动态列并从“dbo.TransactionDetails.ColumnValue”中获取值,其中 TransactionDetail 是表名,而“ColumnName”列包含要添加的列的名称动态创建,该列中的值将从“ColumnValue”中获取。 请帮助获得所需的输出。 如果有可能彻底旋转或任何其他方式。请指导我。

我所做的是添加多个事务详细信息表并通过使用称为 HARDCODING 的“where”来获得所需的输出。 但需要通过旋转或任何其他方式来完成

试试这个

create table #Table1
(VoucherID int, ColumnName varchar(100), ColumnValue varchar(255))

insert into #Table1
values (10,'Buyer Name','Mr. ABC')
, (10,'Buyer Address','Vasant Vihar')
, (10,'Buyer City','New Delhi')
, (10,'Buyer Email','email@gmail.com')



select * from #Table1

Select * from 
(
    Select VoucherID,ColumnName,ColumnValue from #Table1
) as src
pivot
(
    MAX(ColumnValue)
    FOR ColumnName IN([Buyer Name],[Buyer Address],[Buyer City],[Buyer Email])
)as pvt

--Drop table #Table1

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM