Sql server 在SQL Server中将垂直值映射到水平行
问题:这是样本数据,我在ItemDetails中有50000条记录。当我运行我的查询时,它需要很多时间。有人能建议优化查询或最佳选择,以实现上述结果吗?如果问题或疑问不清楚,请告诉我Sql server 在SQL Server中将垂直值映射到水平行,sql-server,Sql Server,问题:这是样本数据,我在ItemDetails中有50000条记录。当我运行我的查询时,它需要很多时间。有人能建议优化查询或最佳选择,以实现上述结果吗?如果问题或疑问不清楚,请告诉我 编辑:ItemID上有一个索引。你说的是支点。如何使用pivot获得结果?还有10个标题,而不是3个。这里我只提到了3个。除了索引。希望左连接是正确的。我的意思是在您的要求中,您不能使用内部连接 详细信息的目的是什么? 您可以有一个名为itemHeader和type的列 为什么需要一次性运行50000行及以上的行。
编辑:ItemID上有一个索引。你说的是支点。如何使用pivot获得结果?还有10个标题,而不是3个。这里我只提到了3个。除了索引。希望左连接是正确的。我的意思是在您的要求中,您不能使用内部连接 详细信息的目的是什么? 您可以有一个名为itemHeader和type的列 为什么需要一次性运行50000行及以上的行。为什么不使用分页
您也可以在前端旋转对象。您在
ItemID
字段上有索引吗?3是最大页眉数吗?
I have two tables. First is ItemDetails and second is ItemHeaders.
ItemHeaders:
ItemID ItemName
1 Apple
2 Orange
3 Grapes
ItemDetails:
ID ItemHeader1 ItemHeader2 ItemHeader3
1 1 2 1
2 3 2 1
3 2 1 2
4 2 3 3
OutPut:
ID Categroy1 Categroy2 Category3
1 Apple Orange Apple
2 Grapes Orange Apple
3 Orange Apple Orange
4 Orange Grapes Grapes
My Query:
Select ID, i1.ItemName as Categroy1, i2.ItemName as Categroy2, i3.ItemName as Categroy3
From ItemDetails d
Left Join ItemHeaders i1 on d.ItemHeader1 = i1.ItemID
Left Join ItemHeaders i2 on d.ItemHeader2 = i2.ItemID
Left Join ItemHeaders i3 on d.ItemHeader3 = i3.ItemID