按顺序从SQL Server导出到Excel

我从保存的视图从SQL Server导出到Excel。 在该视图中,它按两列(按…sorting)

但是,当我导出它,它是随机sorting在Excel中。

如何通过命令导出?

以下是该视图的查询:

SELECT TOP (100) PERCENT GETDATE() AS Date, MixStatusID AS Partner, SUM(CAST(Weight AS float)) AS Weight, SUM(CAST(TotalCostPrice AS float)) AS TotalCost, ProductGroupID FROM dbo.D_ParcelLocation WHERE (ParcelStatusID IN (N'stock', N'memo', N'transfer', N'analyze_un')) AND (ParcelTypeID <> N'M') AND (ProductGroupID <> N'G_POL') AND (ProductGroupID <> N'G_ROU') GROUP BY MixStatusID, ProductGroupID HAVING (SUM(CAST(Weight AS float)) > 0) ORDER BY ProductGroupID, Partner 

对不起,但你不能只用相同的结果集创build一个存储过程?

 create procedure sp_D_ParcelLocation_s as begin SELECT TOP (100) PERCENT GETDATE() AS Date , MixStatusID AS Partner , SUM(CAST(Weight AS float)) AS Weight , SUM(CAST(TotalCostPrice AS float)) AS TotalCost , ProductGroupID FROM dbo.D_ParcelLocation WHERE (ParcelStatusID IN (N'stock', N'memo', N'transfer', N'analyze_un')) AND (ParcelTypeID <> N'M') AND (ProductGroupID <> N'G_POL') AND (ProductGroupID <> N'G_ROU') GROUP BY MixStatusID, ProductGroupID HAVING (SUM(CAST(Weight AS float)) > 0) ORDER BY ProductGroupID, Partner end 

也许这不行? 我不会像这样经常使用Excel,但是我认为你可以像使用视图一样使用sproc。

正如@Pondlife已经正确地指出 ,如果这个查询实际上是一个视图定义,你需要指定一个ORDER BY 从该视图中select ,即这样的事情:

 SELECT * FROM YourView ORDER BY ProductGroupID, Partner ; 

或者不pipe查询是用来实际传输数据的。

视图定义中的ORDER BY不会为您提供结果集的固定顺序。 实际上,它只允许在那里,因为有一个TOP子句,在这种情况下, ORDER BY的正式含义是TOP子句设置正确的行顺序,而不是查询的结果从这个angular度阅读。


1对于使用SELECT TOP 100 PERCENT + ORDER BY技术的实际意义,可以看看这个主题: 为什么使用Select Top 100 Percent?