SQL 旋转多列

SQL Pivot multiple column

我有 table 这样的:-

并且想要这样的输出:-

有什么帮助吗?

下面是针对此问题的更 standard/general 方法(条件聚合),它适用于多个数据库(包括 SQL 服务器)。

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 服务器),数据透视功能将不起作用,因为它特定于 SQL 服务器