我想知道是否有可能返回一个结果集的查询,该结果集将特定行作为第一个元素返回,然后其余部分按特定行排序。
我试过了:
declare @testId int
select @testId = (select TestID from Tests Where FileID='111' AND TestDate='2010-01-01')
select * from Tests where TestId=@TestId
union
select * from Tests where TestId <> @TestId and FileID='111' order by TestDate desc
这不起作用,因为它输出由TestDate排序的常规SELECT,降序。
有什么想法吗?
谢谢!
编辑:此查询用于提供.NET DataTable。
答案 0 :(得分:1)
您可以在ORDER BY
:
CASE
SELECT *
FROM Tests
Where FileNumber = '111'
ORDER BY CASE WHEN AppointmentDT='2010-01-01' THEN 0 ELSE 1 END ASC
, AppointmentDT DESC