1
Subject_Name Semester
------------------------
A1 1
B1 2
C1 3
D1 1
E1 2
所需的输出
1 2 3
---------------
A1 B1 C1
D1 E1
Subject_Name Semester
------------------------
A1 1
B1 2
C1 3
D1 1
E1 2
所需的输出
1 2 3
---------------
A1 B1 C1
D1 E1
试试这个
;WITH cte
AS (SELECT subject_name,
semester,
Row_number() OVER (partition BY semester ORDER BY subject_name DESC) AS Rn
FROM sourcetable)
SELECT [1],
[2],
[3]
FROM cte
PIVOT (Max(subject_name)
FOR semester IN ([1],[2],[3])) pvt
或者:
SELECT *
FROM (SELECT subject_name,
semester,
Row_number() OVER(partition BY semester ORDER BY subject_name DESC) AS Rn
FROM sourcetable) src
PIVOT (Max(subject_name)
FOR semester IN ([1],[2],[3])) piv
输出:
1 2 3
A1 B1 C1
D1 E1 null
感谢您的回复。它工作正常。 – user3128590
Np ....开心编码 –
您正在使用哪个数据库管理系统? Postgres的?甲骨文? –