现在的位置: 首页 > 综合 > 正文

SQL中case when then的使用实例

2018年05月06日 ⁄ 综合 ⁄ 共 486字 ⁄ 字号 评论关闭

假设现在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
 

抱歉!评论已关闭.