SQL指令_UNPIVOT橫向資料轉縱向查詢
SQL指令_UNPIVOT橫向資料轉縱向查詢
簡介 |
介紹如何在資料庫中操作將資料橫轉縱向的需求。 |
作者 |
陳淑敏 |
1. 前言
2. 開始前準備
3. 實作演練
USE [Test]
GO
/****** Object: Table [dbo].[Score] Script Date: 2017/12/27 上午 11:24:38 ******/
CREATE TABLE [dbo].[Score](
[ClassID] [varchar](10) NULL,
[StuID] [varchar](20) NULL,
[StuName] [nvarchar](20) NULL,
[StuGender] [char](1) NULL,
[MATH] [int] NULL,
[ENGLISH] [int] NULL,
[COMPUTER] [int] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-1', N'923101', N'魏小平', N'1', 98, 99, 78)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-1', N'923102', N'連小景', N'1', 78, 96, 78)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-1', N'923103', N'吕小賀', N'1', 84, 87, 63)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-1', N'923104', N'周小進', N'1', 76, 92, 98)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-2', N'923201', N'游小康', N'1', 98, 99, 88)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-2', N'923202', N'林小雨', N'2', 78, 92, 92)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-2', N'923203', N'楊小群', N'1', 73, 93, 68)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-2', N'923204', N'陳小恩', N'2', 89, 87, 98)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-2', N'923205', N'谢小静', N'2', 95, 72, 92)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-2', N'923206', N'陳小芳', N'2', 93, 78, 68)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-3', N'923301', N'歐小侃', N'1', 92, 71, 62)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-3', N'923302', N'趙小剛', N'1', 90, 72, 79)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-3', N'923303', N'黄小瀟', N'2', 80, 93, 93)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-3', N'923304', N'程小龍', N'1', 81, 87, 89)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-3', N'923305', N'盧小城', N'1', 62, 88, 92)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-3', N'923306', N'董小偉', N'1', 82, 80, 80)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-3', N'923307', N'王小源', N'1', 85, 90, 92)
INSERT [dbo].[Score] ([ClassID], [StuID], [StuName], [StuGender], [MATH], [ENGLISH], [COMPUTER]) VALUES (N'3-3', N'923308', N'周小希', N'2', 99, 100, 92)

--資料轉換

4. 參考來源
l http://deanma.blogspot.tw/2012/04/ms-sql-unpovit.html?m=1