Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server中将垂直值映射到水平行_Sql Server - Fatal编程技术网

Sql server 在SQL Server中将垂直值映射到水平行

Sql server 在SQL Server中将垂直值映射到水平行,sql-server,Sql Server,问题:这是样本数据,我在ItemDetails中有50000条记录。当我运行我的查询时,它需要很多时间。有人能建议优化查询或最佳选择,以实现上述结果吗?如果问题或疑问不清楚,请告诉我 编辑:ItemID上有一个索引。你说的是支点。如何使用pivot获得结果?还有10个标题,而不是3个。这里我只提到了3个。除了索引。希望左连接是正确的。我的意思是在您的要求中,您不能使用内部连接 详细信息的目的是什么? 您可以有一个名为itemHeader和type的列 为什么需要一次性运行50000行及以上的行。

问题:这是样本数据,我在ItemDetails中有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