Защо можете просто да го направите така:
order by ImpFile DESC, ImpTime desc
Не, това не води до това, което показвате. Това води до следното:
Import12 2012-05-16 09:55:37.387
Bart Import12 2012-05-16 09:55:37.387
Sasha Import12 2012-05-16 09:55:37.387
John Import12 2012-05-16 09:55:37.383
Imp01 2012-05-16 09:54:02.477
Ann Imp01 2012-05-16 09:54:02.477
Mark Imp01 2012-05-16 09:54:02.477
Sam Imp01 2012-05-16 09:54:02.477
Вижте тук за пример
РЕДАКТИРАНЕ
Имам едно предложение за вас. Може би нещо подобно:
Тестови данни
DECLARE @T TABLE(Name VARCHAR(100),ImpFile VARCHAR(100),ImpTime DATETIME)
INSERT INTO @T
([Name], [ImpFile], [ImpTime])
VALUES
('Sam', 'Imp01', '2012-05-16 09:54:02.477'),
('Ann', 'Imp01', '2012-05-16 09:54:02.478'),
('Mark', 'Imp01', '2012-05-16 09:54:02.477'),
('John', 'Import12', '2012-05-16 09:55:37.384'),
('Bart', 'Import12', '2012-05-16 09:55:37.387'),
('Sasha', 'Import12', '2012-05-16 09:55:37.385');
Заявка
;WITH CTE
AS
(
SELECT
ROW_Number() OVER(PARTITION BY t.[ImpFile]
ORDER BY t.[ImpTime] DESC) AS RowNbr,
'' AS Name,
t.ImpFile,
t.[ImpTime]
FROM
@T AS t
)
SELECT
CTE.Name,
CTE.ImpFile,
CTE.[ImpTime],
0 as SortOrder
FROM
CTE
WHERE
CTE.RowNbr=1
UNION ALL
SELECT
t.Name,
t.ImpFile,
t.[ImpTime],
1 as SortOrder
FROM
@T AS t
ORDER BY
ImpFile DESC,SortOrder, ImpTime desc