SQL Server 竖向结果转换为横向
发布网友
发布时间:2022-04-10 16:21
我来回答
共2个回答
热心网友
时间:2022-04-10 17:51
SELECT 姓名
,'数学'=MAX(CASE 课程 WHEN '数学' THEN 分数 ELSE 0 END)
,'语文'=MAX(CASE 课程 WHEN '语文' THEN 分数 ELSE 0 END)
,'英语'=MAX(CASE 课程 WHEN '英语' THEN 分数 ELSE 0 END)
FROM TB
GROUP BY 姓名
--或者
SELECT 姓名,
,'数学'=SUM(CASE 课程 WHEN '数学' THEN 分数 ELSE 0 END)
,'语文'=SUM(CASE 课程 WHEN '语文' THEN 分数 ELSE 0 END)
,'英语'=SUM(CASE 课程 WHEN '英语' THEN 分数 ELSE 0 END)
FROM TB
GROUP BY 姓名
热心网友
时间:2022-04-10 19:09
SELECT t1.编号, t1.规格, t2.名称
FROM (SELECT 编号, 规格A AS 规格, 数量A FROM tab
UNION ALL
SELECT 编号, 规格B AS 规格, 数量B FROM tab
UNION ALL
SELECT 编号, 规格C AS 规格, 数量C FROM tab) t1
INNER JOIN t2
ON t1.编号 = t2.编号 AND t1.规格 = t2.规格