Sql 基于另一列中的值将列透视到行
所以我有一个包含两个属性的表(见图)。现在我一直在尝试使用PIVOT来完成我的任务,但没有成功 我想要:Sql 基于另一列中的值将列透视到行,sql,sql-server,Sql,Sql Server,所以我有一个包含两个属性的表(见图)。现在我一直在尝试使用PIVOT来完成我的任务,但没有成功 我想要: SparePartListID=1的所有WorkOperationID在一行上 与第2行上的SparePartsListID=2对应的所有WorkOperationsID 这有可能实现吗 使用帮助或Row_Number()和一些动态SQL。这是假设您想要密集的列,否则请通过SparePartsListID删除分区(两个) 返回 SparePartsListID 1 2
SparePartListID=1的所有
在一行上WorkOperationID
- 与第2行上的
对应的所有SparePartsListID=2
李>WorkOperationsID
使用帮助或Row_Number()和一些动态SQL。这是假设您想要密集的列,否则请通过SparePartsListID删除
分区(两个)
返回
SparePartsListID 1 2 3 4 ...
1 101282 101344 101398 NULL ...
2 84108 84921 85528 86228 ...
编辑-如果您不想动态扩展[1]、[2]、[3]、[4]、…、[n]
SparePartsList=2比SparePartsList=1多添加所需输出的示例
SparePartsListID 1 2 3 4 ...
1 101282 101344 101398 NULL ...
2 84108 84921 85528 86228 ...
Select *
From (
Select *
,RN=Row_Number() over (Partition By SparePartsListID Order by WorkOperationID)
From YourTable
) A
Pivot (max(WorkOperationID) For [RN] in ([1],[2],[3],[4]) ) p