我需要你的建议。
我想将这些行透视到一个列,其结果包含多个重复行
之前:
| 线型|线路名称|
| - ------| - ------|
| 内部|储存1|
| 马克龙|储存2|
| 内部|储存1|
| 马克龙|储存3|
| 过程|储存B|
| 马克龙|储存3|
之后:
| 内部|马克龙|过程|
| - ------| - ------| - ------|
| 储存1|储存2|储存B|
| 储存1|储存3||
| | 储存3||
我可以使用透视吗?或者有其他技巧可以做到这一点?
我试过使用常规的枢轴,但它只是不像我想要的工作。
SELECT *
FROM (
SELECT
[line_type],
[line_name]
FROM
[table_name]
) pvt
PIVOT (
MAX(line_name)
FOR [line_type] IN (
[Internal],
[Makloon],
[Process]
)
) AS pvt_table;
我尝试的PIVOT查询的结果:
| 内部|马克龙|过程|
| - ------| - ------| - ------|
| 储存1|储存3|储存B|
1条答案
按热度按时间368yc8dk1#
为了保持行分隔,需要一个不同的值,一种方法是使用
ROW_NUMBER()
窗口函数在每个透视表列中分配不同的值。例如:
rn
可以从最终选择列表中删除。它放在那里是为了说明。看这个db<>fiddle。