首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

温故容易SQL行列转换

2013-08-09 
温故简单SQL行列转换-- 创建表CREATE TABLE T_Score(ScoreId INT IDENTITY (1,1) NOT NULL,StuName NVARCH

温故简单SQL行列转换

-- 创建表CREATE TABLE T_Score(ScoreId INT IDENTITY (1,1) NOT NULL,StuName NVARCHAR(50),Subject NVARCHAR(50),ScoreINT)-- 插入数据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 @SQL=@SQL+',SUM(CASE Subject WHEN '''+Subject+''' THEN Score ELSE 0 END) ['+Subject+']'FROM (SELECT DISTINCT Subject FROM T_Score) AS ttSELECT @SQL=@SQL+' FROM T_Score GROUP BY StuName'EXEC(@SQL)

热点排行