SQL Pivot 多列 [关闭]

Posted

技术标签:

【中文标题】SQL Pivot 多列 [关闭]【英文标题】:SQL Pivot multiple column [closed] 【发布时间】:2021-02-03 21:54:28 【问题描述】:

我有这样的表:-

并且想要这样的输出:-

有什么帮助吗?

【问题讨论】:

标记您正在使用的数据库?您是否只需要枢轴或替代方案的解决方案也适合您? SQL Server,pivot 解决方案应该是不错的替代方案。 【参考方案1】:

下面是一个更标准/通用的方法(条件聚合),可以跨多个数据库(包括 SQL Server)工作。

SELECT
 ID
,MAX(CASE WHEN DOMAIN = 'A' THEN SCORE END) AS DOMAIN_A
,MAX(CASE WHEN DOMAIN = 'A' THEN BAND  END) AS BAND_A
,MAX(CASE WHEN DOMAIN = 'B' THEN SCORE END) AS DOMAIN_B
,MAX(CASE WHEN DOMAIN = 'B' THEN BAND  END) AS BAND_B
,MAX(CASE WHEN DOMAIN = 'C' THEN SCORE END) AS DOMAIN_C
,MAX(CASE WHEN DOMAIN = 'C' THEN BAND  END) AS BAND_C
,MAX(CASE WHEN DOMAIN = 'D' THEN SCORE END) AS DOMAIN_D
,MAX(CASE WHEN DOMAIN = 'D' THEN BAND  END) AS BAND_D
,MAX(CASE WHEN DOMAIN = 'E' THEN SCORE END) AS DOMAIN_E
,MAX(CASE WHEN DOMAIN = 'E' THEN BAND  END) AS BAND_E
FROM MyTable
Group by ID
;

注意:如果您不使用 T-SQL (SQL Server),Pivot 功能将无法工作,因为它是特定于 SQL Server 的

【讨论】:

@Raunak - 上述解决方案对您有用吗?分享想法/cmets。

以上是关于SQL Pivot 多列 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

带有 MIN() 和多列的 SQL PIVOT 表

具有 INT 和 NVARCHAR 数据类型的多列的 SQL Pivot [重复]

MS SQL Pivot 来自多列的长数据

oracle 多列 列转行

PIVOT/UNPIVOT 多行多列

Oracle Pivot 多列