使用 UNPIVOT 将行转换为列

Converting rows to columns using UNPIVOT(使用 UNPIVOT 将行转换为列)
本文介绍了使用 UNPIVOT 将行转换为列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是我的示例数据集:

Following is my sample dataset:

ID  Prod1   Prod2   Prod3
1   ABC01   CDE02   XYZ03

我想将行转换为列,我想要的输出是:

I want to convert rows to columns and my desired output is:

ID   Products
1    ABC01  
1    CDE02  
1    XYZ03

我尝试使用 UNPIVOT,但我的代码不起作用:

I tried using UNPIVOT, but my code didn't work:

Select Id, Products
From Sample
UNPIVOT
(
    Products
    FOR Id IN ([1],[2],[3])
) AS P

有人可以帮我将这些行转换为每个 ID 的列吗?

Can someone please help me converting these rows to columns for each ID?

推荐答案

或者,您可以使用 VALUES 子句来取消数据透视:

Alternatively, you can use a VALUES clause to unpivot the data:

SELECT S.ID,
       V.Product
FROM dbo.Sample S
     CROSS APPLY (VALUES(S.Prod1),(S.Prod2),(S.Prod3))V(Product);

DB<>小提琴

这篇关于使用 UNPIVOT 将行转换为列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)