SQL两次排序。
select EVT.* ,DEV.DNM, DEV.AI from DEV inner join EVT
ON EVT.DI =DEV.DI where EVT.TM >'2013-7-2 9:27:58'
order by TM desc,case when EVT.DK ='false' then 1 else 0 end desc
表里有两个字段, 一个是TM(DATE),另一个是DK(bool )
首先按时间 降序。
然后 DK为false 的要排在前面。
[解决办法]
select EVT.* ,DEV.DNM, DEV.AI from DEV inner join EVT
ON EVT.DI =DEV.DI where EVT.TM >'2013-7-2 9:27:58'
order by TM desc,evt.dk
[解决办法]
--> 测试数据:@T
declare @T table([TM] datetime,[DK] bit)
insert @T
select '2013-02-01',0 union all
select '2013-01-29',1 union all
select '2013-07-12',0 union all
select '2013-02-04',1 union all
select '2013-02-01',1
select * from @T ORDER BY [TM] DESC,[DK]
--利用 RecordSet 将 bit 字段中的数据取出来后,它是 boolean 类型0(false)或1(true).
/*
TM DK
----------------------- -----
2013-07-12 00:00:00.000 0
2013-02-04 00:00:00.000 1
2013-02-01 00:00:00.000 0
2013-02-01 00:00:00.000 1
2013-01-29 00:00:00.000 1
*/