假设现在News表有以下字段
News_Id,News_Title,News_IsSetTop,News_SetTopTime
其中News_IsSetTop(char(1))是“是否置顶”的含义;News_SetTopTime(DateTime)是置顶时间;
现在要实现:如果News_IsSetTop为"1"时 ,ORDER BY News_IsSetTop DESC,News_Id DESC;News_IsSetTop为"0"时,ORDER BY News_ID DESC
经过反复的试验,终于解决了这个问题:
select
news_id,news_issettop,news_settoptime
from
hope_T_news
order by
(case when news_issettop=’0′ then news_issettop
when news_issettop=’1′ and news_settoptime>getdate() and news_settoptime<dateadd(day,3,getdate()) then news_id
end)
desc,news_id desc