|
|
#3
purana2007-09-13 09:49
比较典型的交叉表.
--创建表 CREATE TABLE [Test] ( [id] [int] IDENTITY (1, 1) NOT NULL , [name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [subject] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [score] [numeric](18, 0) NULL , CONSTRAINT [PK_ID] PRIMARY KEY CLUSTERED ( [id] ) ON [PRIMARY] ) ON [PRIMARY] GO
--插入记录 insert into test([name],[subject],[score]) values('张三','语文',60) insert into test([name],[subject],[score]) values('张三','数学',76) insert into test([name],[subject],[score]) values('张三','英语',80)
insert into test([name],[subject],[score]) values('李四','语文',90) insert into test([name],[subject],[score]) values('李四','数学',88) insert into test([name],[subject],[score]) values('李四','英语',50)
--查询 select [name],sum(case [subject] when '数学' then score else 0 end) as '数学', sum(case [subject] when '语文' then score else 0 end) as '语文', sum(case [subject] when '英语' then score else 0 end) as '英语' from test group by [name]
|