2013-03-05 41 views
2

我使用排序按日期不能正常工作

的Microsoft SQL Server 2008(RTM) - 10.0.1600.22(X64)2008年7月9日14时17分44秒 版权所有(C)1988-2008微软公司企业 版(64位)在Windows NT 6.1(内部版本7601:Service Pack 1的)

当我尝试它没有给予正确的顺序

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

它显示结果的顺序号为5和2,这是不正确的。它应该实际显示orderid 5,4。

+0

号的顺序是正确的。在一组相同值内排序未定义。 – 2013-03-05 06:40:01

+0

所以我如何得到预期的结果? – SQL006 2013-03-05 06:50:54

+0

我想根据订单排序的结果...如果订单是相同的,然后得到最后插入的ID ..这里插入1,2后 – SQL006 2013-03-05 07:09:44

回答

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 
+0

感谢您的解 – SQL006 2013-03-05 08:53:57