按日期排序无法正常工作

时间:2013-03-05 06:36:39

标签: sql-server-2008 sql-order-by

我正在使用

  

Microsoft SQL Server 2008(RTM) - 10.0.1600.22(X64)2008年7月9日   14:17:44版权所有(c)1988-2008 Microsoft Corporation Enterprise   Windows NT 6.1(Build 7601:Service Pack 1)上的版本(64位)

当我尝试按日期排序时,它没有给出正确的顺序

DECLARE @dd table (ID int,rate numeric(5,2), orderdate smalldatetime)
INSERT INTO @dd
SELECT 1,10,'2013-03-05 10:11:00'
UNION ALL 
SELECT 2,25,'2013-03-05 10:11:00' 
UNION ALL
SELECT 3,30,'2013-03-05 10:10:00'
UNION ALL
SELECT 4,50,'2013-03-05 10:11:00'
UNION ALL
SELECT 5,60,'2013-03-05 10:15:00'

SELECT top 2 * FROM @dd Order by orderdate desc

Id 1,2,4具有相同的orderdate

在此订单ID 5和2中显示的结果不正确。它实际上应该显示orderid 5,4。

1 个答案:

答案 0 :(得分:4)

在回复您的评论时,您还需要按ID列进行订购:

SELECT top 2 * 
FROM @dd 
Order by orderdate desc, ID desc

结果:

ID  rate    orderdate
5   60.00   2013-03-05 10:15:00
4   50.00   2013-03-05 10:11:00