假设现在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
本文介绍了一种在SQL中根据是否置顶及置顶时间进行新闻条目排序的方法。通过使用CASE WHEN语句结合DESC关键字,实现了不同置顶状态下的灵活排序逻辑。

1万+

被折叠的 条评论
为什么被折叠?



