資料庫行轉列簡單例子
阿新 • • 發佈:2019-01-10
DECLARE @StuList TABLE
(
Stu VARCHAR(20),
Course NVARCHAR(20),
Score DECIMAL
)
INSERT INTO @StuList
( Stu, Course, Score )
VALUES ( 'Jim', -- Stu - varchar(20)
N'語文', -- Course - nvarchar(20)
80 -- Score - decimal
)
INSERT INTO @StuList
( Stu, Course, Score )
VALUES ( 'Jim', -- Stu - varchar(20)
N'數學', -- Course - nvarchar(20)
90 -- Score - decimal
)
INSERT INTO @StuList
( Stu, Course, Score )
VALUES ( 'Tom', -- Stu - varchar(20)
N'語文', -- Course - nvarchar(20)
95 -- Score - decimal
)
INSERT INTO @StuList
( Stu, Course, Score )
VALUES ( 'Tom', -- Stu - varchar(20)
N'數學', -- Course - nvarchar(20)
100 -- Score - decimal
)
SELECT * FROM @StuList
SELECT Stu, SUM(CASE Course WHEN '語文' THEN Score END) AS '語文',SUM(CASE Course WHEN '數學' THEN Score END) AS '數學'
FROM @StuList
GROUP BY Stu
(
Stu VARCHAR(20),
Course NVARCHAR(20),
Score DECIMAL
)
INSERT INTO @StuList
( Stu, Course, Score )
VALUES ( 'Jim', -- Stu - varchar(20)
N'語文', -- Course - nvarchar(20)
80 -- Score - decimal
)
INSERT INTO @StuList
( Stu, Course, Score )
VALUES ( 'Jim', -- Stu - varchar(20)
N'數學', -- Course - nvarchar(20)
90 -- Score - decimal
)
INSERT INTO @StuList
( Stu, Course, Score )
VALUES ( 'Tom', -- Stu - varchar(20)
N'語文', -- Course - nvarchar(20)
95 -- Score - decimal
)
INSERT INTO @StuList
( Stu, Course, Score )
VALUES ( 'Tom', -- Stu - varchar(20)
N'數學', -- Course - nvarchar(20)
100 -- Score - decimal
)
SELECT * FROM @StuList
SELECT Stu, SUM(CASE Course WHEN '語文' THEN Score END) AS '語文',SUM(CASE Course WHEN '數學' THEN Score END) AS '數學'
FROM @StuList
GROUP BY Stu