将列转换为行
Posted
技术标签:
【中文标题】将列转换为行【英文标题】:Convert column into the rows 【发布时间】:2021-05-18 07:05:12 【问题描述】:这是我当前查询的结果集:
Question Sol25A Sol25B Sol25C Sol40A Sol40B
======================================================
A 1 4 2 6 0
B 2 3 2 1 9
C 6 7 1 0 8
======================================================
Total = 9 14 5 7 17
======================================================
我想要这种形式的结果:
Product Total
===============
Sol25A 9
Sol25B 14
Sol25C 5
Sol40A 7
Sol40B 17
你能帮我提供一下查询吗,这对我有很大的帮助。
【问题讨论】:
SO 不是代码编写服务。您需要进行一些研究,尝试一下,并且仅在遇到困难时才发布问题。正如对您的第一个问题所评论的那样。事实上,这个问题似乎与您的第一个问题非常相似?除了您的尝试之外,您还应该用文字解释您的逻辑。 更好地自己构建查询,如果它不起作用,请向我们展示并让它修复。 SO 不是代码编写服务。 用 GROUP BY 联合所有。 【参考方案1】:我建议您使用 cross apply
取消透视然后聚合:
select product, sum(val)
from t cross apply
(values ('Sol25A', Sol25A), ('Sol25B', Sol25B), ('Sol25C', Sol25C),
('Sol40A', Sol40A), ('Sol40B', Sol40B)
) v(product, val)
group by product;
【讨论】:
以上是关于将列转换为行的主要内容,如果未能解决你的问题,请参考以下文章