2013-03-05 3 views
2

Я используюСортировать по дате не работает должным образом

Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Июль 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Корпорация Enterprise Edition (64-разрядная версия) на Windows NT 6.1 (Build 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

No. Порядок является правильным. Заказ в группе с одинаковыми значениями не определен. –

+0

так как я получаю ожидаемый результат? – SQL006

+0

Я хочу получить результат на основе сортировки orderdate ... если orderdate тот же, то получите идентификатор, который был последним вставлен. Где 4 вставлен после 1,2 – SQL006

ответ

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

Смежные вопросы