1.PIVOT用法(行转列) select * from Table_Score as a pivot (sum(score) for a.name in ([语文],[数学],[外语],[文综],[理综])) as b 数据: id name score 语文 数学 外语 文综 理综 结果: id 语文 数学 外语 文综 理综 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 2.UNPIVOT用法(列转行) select orders,wee
1.基础表 2.行转列,注意ISNULL函数的使用,在总成绩的统计中,ISNULL(-,0) 有必要使用 3.列转行,对列语文.数学.英语.政治,进行列转行,转为了2列,score scname 这两列,是新列,可以取名为 score11 scname22,随意 4.测试脚本 SELECT * FROM dbo.SC --插入测试数据 INSERT dbo.SC UNION UNION UNION --行转列 SELECT * FROM dbo.SC PIVOT (SUM(Score) FOR
[pivot]行转列:多行变一列 假设学生成绩表Score1 Name Subject Score 小张 语文 88 小花 数学 89 小张 数学 90 Name 语文 数学 小花 null 89 小张 88 90 --一定要有聚合函数, 如sum(Score) select * from Score1 pivot (sum(Score) for Subject in (语文,数学)) b [unpivot]列转行:一列变多行 假设学生成绩表Score2 Name Chinese Math 小花