我需要你的建议。
我想把这些行透视到结果有多个重复行的列
:
<表类>
line_type
line_name
tbody><<tr>内部 存储1 Makloon 存储2 内部存储1 Makloon 存储3 存储B Makloon 存储3 表类>
为了保持行之间的分隔,您需要一个不同的值。一种方法是使用ROW_NUMBER()
窗口函数在每个枢轴列中分配不同的值。
类似:
SELECT rn, [Internal], [Makloon], [Process]
FROM (
SELECT
[line_type],
[line_name],
ROW_NUMBER() OVER(PARTITION BY line_type ORDER BY line_name) AS rn
FROM
[table_name]
) pvt
PIVOT (
MAX(line_name)
FOR [line_type] IN (
[Internal],
[Makloon],
[Process]
)
) AS pvt_table
ORDER BY rn;
rn
可以从最终选择列表中删除。放在这里是为了说明。
查看此数据库<>提琴