select * from TB where 过期时间EndTime >= getdate() order by 权重 desc --这里要等于吗?
union all
select * from TB where 过期时间EndTime < getdate() order by 过期时间EndTime desc
union all
select * from TB where 过期时间EndTime < getdate() order by 过期时间EndTime desc
union all
select * from TB where 过期时间EndTime < convert(varchar(10),getdate(),120) order by 过期时间EndTime desc