2013-03-05 76 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