您的位置:首页 > 数据库

SQL中case when then的使用实例

2010-06-01 08:43 435 查看
假设现在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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: