0

我正在尝试根据类型为money的列对结果进行排序。排序似乎没有产生预期的结果。

询问 :

SELECT ItemID, ItemName, Total, 
       '$' + replace(convert(varchar,cast(Volume as money),1), '.00','') as Volume, 
   '$' +  replace(convert(varchar,cast(Average as money),1), '.00','') as Average,  
       FinalTotal     
FROM @FinalTabVariable
ORDER BY Average DESC

谢谢

BB

4

1 回答 1

2

有几件事我看错了。

您使用的别名Average是您要排序的列的名称,因此您实际上是在对varchar值进行排序,而不是在money. 尝试使用:

SELECT ItemID, ItemName, Total, 
       '$' + replace(convert(varchar,cast(Volume as money),1), '.00','') as Volume, 
   '$' +  replace(convert(varchar,cast(Average as money),1), '.00','') as Avg,    
FROM @FinalTabVariable
ORDER BY Average DESC

如果您的Average专栏是money,那么我不确定您为什么cast(Average as money)在查询中使用。在这种情况下,这似乎是不必要的。

于 2013-02-19T18:00:39.860 回答