Sql 将两列透视成多行
源表Sql 将两列透视成多行,sql,pivot,Sql,Pivot,源表 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,
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
您使用的是哪种数据库管理系统?博士后?神谕