没有看到完整的查询基于行数我建议增加一个row_number()
你的CTE,然后pivoting数据:
;with cte as
(
select *, -- replace * with your column names
ROW_NUMBER() over(partition by colName order by colName) rn
from yourdata
)
select [1] as colName1,
[2] as colName2,
[3] as colName3,
[4] as colName4
from cte
pivot
(
max(colName)
for rn in ([1], [2], [3], [4])
) piv;
如果你不想使用旋转功能,那么你可以也可以使用具有CASE表达式的聚合函数:
;with cte as
(
select *, -- replace * with your column names
ROW_NUMBER() over(partition by colName order by colName) rn
from yourdata
)
select
MAX(case when rn = 1 then colName end) colName1,
MAX(case when rn = 2 then colName end) colName2,
MAX(case when rn = 3 then colName end) colName3,
MAX(case when rn = 4 then colName end) colName4
from cte
-- group by other columns in select if needed
也许你想**转换**而不是** Conert **? –