数据库 PIVOT 行转列

/****** Object:  Table [dbo].[SC]    Script Date: 06/28/2013 13:55:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[SC](
[S#] [varchar](50) NOT NULL,
[C#] [varchar](50) NOT NULL,
[G] [int] NOT NULL,
 CONSTRAINT [PK_SC] PRIMARY KEY CLUSTERED 
(
[S#] ASC,
[C#] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S001', N'C004', 77)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S001', N'C006', 85)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S002', N'C002', 72)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S002', N'C004', 85)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S002', N'C006', 59)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S003', N'C001', 48)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S003', N'C002', 68)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S003', N'C003', 52)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S003', N'C004', 80)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S003', N'C005', 56)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S003', N'C006', 62)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S004', N'C001', 70)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S004', N'C002', 71)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S004', N'C003', 72)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S004', N'C005', 73)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S005', N'C004', 89)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S005', N'C006', 88)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S006', N'C001', 81)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S006', N'C002', 82)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S006', N'C003', 83)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S006', N'C005', 84)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S008', N'C001', 80)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S008', N'C002', 90)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S009', N'C001', 81)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S009', N'C002', 72)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S009', N'C003', 63)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S009', N'C004', 54)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S009', N'C005', 65)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S009', N'C006', 48)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S010', N'C001', 55)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S010', N'C002', 72)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S010', N'C003', 88)
INSERT [dbo].[SC] ([S#], [C#], [G]) VALUES (N'S010', N'C005', 56)
/****** Object:  Table [dbo].[S]    Script Date: 06/28/2013 13:55:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[S](
[S#] [varchar](50) NOT NULL,
[SN] [nvarchar](50) NOT NULL,
[SD] [nvarchar](100) NOT NULL,
[SA] [int] NOT NULL,
 CONSTRAINT [PK_S] PRIMARY KEY CLUSTERED 
(
[S#] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[S] ([S#], [SN], [SD], [SA]) VALUES (N'S001', N'Thomas Leung', N'VoiceCyber/VoiceCodes', 110)
INSERT [dbo].[S] ([S#], [SN], [SD], [SA]) VALUES (N'S002', N'Peter Li', N'VoiceCodes', 112)
INSERT [dbo].[S] ([S#], [SN], [SD], [SA]) VALUES (N'S003', N'Danny Wu', N'VoiceCodes', 119)
INSERT [dbo].[S] ([S#], [SN], [SD], [SA]) VALUES (N'S004', N'Jason Tan', N'VoiceCodes', 114)
INSERT [dbo].[S] ([S#], [SN], [SD], [SA]) VALUES (N'S005', N'Anna  Hu', N'VoiceCodes', 1021)
INSERT [dbo].[S] ([S#], [SN], [SD], [SA]) VALUES (N'S006', N'Jack Yan', N'VoiceCyber', 1010)
INSERT [dbo].[S] ([S#], [SN], [SD], [SA]) VALUES (N'S007', N'Young Yang', N'VoiceCyber', 1025)
INSERT [dbo].[S] ([S#], [SN], [SD], [SA]) VALUES (N'S008', N'Bruce Tang', N'VoiceCyber', 1022)
INSERT [dbo].[S] ([S#], [SN], [SD], [SA]) VALUES (N'S009', N'Charley Chen', N'VoiceCyber', 1023)
INSERT [dbo].[S] ([S#], [SN], [SD], [SA]) VALUES (N'S010', N'Koala Fang', N'VoiceCyber', 1024)
/****** Object:  Table [dbo].[C]    Script Date: 06/28/2013 13:55:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[C](
[C#] [varchar](50) NOT NULL,
[CN] [nvarchar](50) NOT NULL,
 CONSTRAINT [PK_C] PRIMARY KEY CLUSTERED 
(
[C#] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[C] ([C#], [CN]) VALUES (N'C001', N'数据库基础知识')
INSERT [dbo].[C] ([C#], [CN]) VALUES (N'C002', N'操作系统基础知识')
INSERT [dbo].[C] ([C#], [CN]) VALUES (N'C003', N'C#入门与进阶')
INSERT [dbo].[C] ([C#], [CN]) VALUES (N'C004', N'会计基础')
INSERT [dbo].[C] ([C#], [CN]) VALUES (N'C005', N'Oracle系统管理')

INSERT [dbo].[C] ([C#], [CN]) VALUES (N'C006', N'税收基础')


数据库行转列->查询所有学生的全部成绩:

declare @sql varchar(8000)
select @sql = isnull(@sql + ',' , '') + CN from C group by CN
EXEC('SELECT * FROM (SELECT * FROM (SELECT S.SN,C.CN,SC.G FROM S,SC,C WHERE S.S#=SC.S# AND SC.C#=C.C#)A)B PIVOT (MAX(G) FOR CN IN ('+@sql+'))D')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值