当前位置: 代码迷 >> SQL >> 温故容易SQL行列转换
  详细解决方案

温故容易SQL行列转换

热度:29   发布时间:2016-05-05 12:08:41.0
温故简单SQL行列转换
-- 创建表CREATE TABLE T_Score(	ScoreId INT IDENTITY (1,1) NOT NULL,	StuName NVARCHAR(50),	Subject NVARCHAR(50),	Score	INT)-- 插入数据INSERT INTO T_Score(StuName,Subject,Score)SELECT '李四','英语',88 UNION ALLSELECT '李四','语文',99 UNION ALLSELECT '李四','化学',78 UNION ALLSELECT '李四','历史',82 UNION ALLSELECT '李四','物理',98 UNION ALLSELECT '王五','英语',89 UNION ALLSELECT '刘萍','英语',77 UNION ALLSELECT '刘萍','语文',68 UNION ALLSELECT '王六','英语',81 UNION ALLSELECT '马林','英语',84--行列转换(显示数据)DECLARE @SQL VARCHAR(8000)SET @SQL='SELECT StuName AS 姓名'SELECT @[email protected]+',SUM(CASE Subject WHEN '''+Subject+''' THEN Score ELSE 0 END) ['+Subject+']'FROM (SELECT DISTINCT Subject FROM T_Score) AS ttSELECT @[email protected]+' FROM T_Score GROUP BY StuName'EXEC(@SQL)
  相关解决方案