SQL Server 竖向结果转换为横向
是否可以依据Room列,将ID,Name列合并为横向显示(最好可以列名依次+1),需求参考附图...
是否可以依据Room列 ,将 ID,Name 列合并为横向显示 (最好可以列名依次+1),需求参考附图
展开
展开全部
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.规格
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.规格
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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 姓名
,'数学'=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 姓名
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |