在SQL Server中按字符串转换的条件排序

时间:2012-11-14 09:08:56

标签: sql sql-server

当我尝试使用查询

从SQL Server数据库获取金额和日期值时
select Amount, RunDate
  from zComm
 WHERE ID = '1339812'

它没有返回任何数据。但是当我将日期转换为字符串时,它的工作查询是

select Amount, convert(varchar, RunDate) as RunDate
  from zComm
 WHERE ID = '1339812'

现在我想以Amount的降序显示RunDate并使用查询

select Amount, convert(varchar, RunDate) as RunDate 
  from zComm 
 WHERE ID = '1339812'
 order by RunDate;

但我得到的结果并不是降序。我附上了结果查询的屏幕截图。

2 个答案:

答案 0 :(得分:1)

正在对日期的字符串表示进行排序,请尝试此操作。

select Amount, convert(varchar, RunDate) as RunDateVarchar
  from zComm 
 WHERE ID='1339812'
 order by RunDate;

答案 1 :(得分:1)

尝试使用DESC关键字。所以你的查询将成为

SELECT Amount, convert(varchar, RunDate) as RunDateChar  
FROM zComm  
WHERE ID = N'1339812'
ORDER BY RunDate DESC;

可能是按CHAR表示排序,而不是日期。

我希望这会有所帮助。