我正在尝试根据 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
答案 0 :(得分: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)
的原因。在这种情况下,这似乎是不必要的。