DECLARE @t_Stu TABLE( [学生姓名] NVARCHAR(10), [课程名称] NVARCHAR(10), [考试成绩] INT ); INSERT INTO @t_Stu( 学生姓名, 课程名称, 考试成绩 )VALUES ( N'张三',N'英语',88) INSERT INTO @t_Stu( 学生姓名, 课程名称, 考试成绩 )VALUES ( N'张三',N'数学',87) INSERT INTO @t_Stu( 学生姓名, 课程名称, 考试成绩 )VALUES ( N'李四',N'英语',92) INSERT INTO @t_Stu( 学生姓名, 课程名称, 考试成绩 )VALUES ( N'李四',N'数学',90) INSERT INTO @t_Stu( 学生姓名, 课程名称, 考试成绩 )VALUES ( N'王五',N'英语',79) INSERT INTO @t_Stu( 学生姓名, 课程名称, 考试成绩 )VALUES ( N'王五',N'数学',90)
找出英语成绩大于数学成绩的学生并列出来
SELECT * FROM @t_Stu/*数据源*/ AS p PIVOT ( SUM(p.考试成绩/*行转列后 列的值*/) FOR 课程名称/*需要行转列的列*/ IN ([英语],[数学]/*列的值*/) ) AS T WHERE [英语]>[数学]