【发布时间】:2021-09-30 19:29:37
【问题描述】:
我在 SQL Server 2016 中有下表
CREATE TABLE #Source (PatientID INT, DiagnosisCode VARCHAR(20), DX_Pt_RowNum INT)
INSERT INTO #Source
SELECT 1 AS PatientID, 'A' AS DiagnosisCode, 1 AS DX_Pt_RowNum UNION
SELECT 1 AS PatientID, 'B' AS DiagnosisCode, 2 AS DX_Pt_RowNum UNION
SELECT 1 AS PatientID, 'C' AS DiagnosisCode, 3 AS DX_Pt_RowNum UNION
SELECT 2 AS PatientID, 'K' AS DiagnosisCode, 1 AS DX_Pt_RowNum UNION
SELECT 2 AS PatientID, 'T' AS DiagnosisCode, 2 AS DX_Pt_RowNum UNION
SELECT 2 AS PatientID, 'E' AS DiagnosisCode, 1 AS DX_Pt_RowNum
当我们需要聚合数据时,我知道如何在 SQL 中进行基本的 PIVOT 操作。但我有一个复杂的场景如下。我们需要将上面的数据转换成下面的 PIVOT 格式。如何在 SQL Server 中实现这一点?
注意:我在此示例中放置了 3 列。实际上,我们有 10 列。因此在同一张桌子上多次JOINing 可能并不理想。
【问题讨论】:
-
你需要谷歌
SQL Server Dynamic PIVOT data,会出现很多东西
标签: sql sql-server sql-server-2012 sql-server-2016