现在的位置: 首页 > 综合 > 正文

sql查询的行列转换

2014年01月13日 ⁄ 综合 ⁄ 共 376字 ⁄ 字号 评论关闭

CREATE TABLE [dbo].[tb](
 [姓名] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
 [课程] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
 [分数] [int] NULL
) ON [PRIMARY]

 

 

SELECT pvt.姓名,语文,数学,物理,总分,平均分,名次=RANK() OVER(ORDER BY 平均分 DESC)
FROM tb
PIVOT
(
MAX(分数)
FOR 课程 IN(语文,数学,物理)
) pvt
CROSS APPLY (SELECT 总分=SUM(分数),平均分=AVG(分数) FROM tb t WHERE t.姓名=pvt.姓名) as avgTable
PVIOT 实现行列的转换

 

查询结果显示为:

姓名|语文|数学|物理|总分|平均分

test|90  |12  |67  |169|

 

抱歉!评论已关闭.