[英]Convert Rows to Column in SQL Server using Pivot
我是 pivot 的新手,我有一张如下表。 它有 Model 编号和组号详细信息。 该表包含 10 个不同的组。
我正在尝试实现这样的结果集。 只想列出每个组下的所有 Model。
我尝试使用此 SQL 查询,但在这里我得到了部分结果。 它只显示一行。
SELECT *
FROM (
SELECT DISTINCT ModelNo
,GroupNo
FROM #Table
) d
pivot(max(ModelNo) FOR GroupNo IN (
[1]
,[2]
,[3]
,[4]
,[5]
,[6]
,[7]
,[8]
,[9]
,[10]
)) piv
我不确定我在哪里失踪。 请帮我整理一下。
我建议在pivot
上进行条件聚合——它的用途更加广泛。
您需要的是row_number()
,因此查询如下所示:
select max(case when groupno = 1 then modelno end) as group_01,
max(case when groupno = 2 then modelno end) as group_02,
. . .
from (select t.*,
row_number() over (partition by groupno order by modelno) as seqnum
from t
) t
group by seqnum;
您也可以将这个想法融入pivot
中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.