这个sql查询能实现不,怎么写?高手来!

来源:百度知道 编辑:UC知道 时间:2024/06/06 06:10:35
sql数据库 一视图中有字段A 字段B
字段A 新闻排序数值 如果为0则不参加置顶排序 不为0时越大越靠前
字段B 参加置顶排序有效期 用数字表示天数 判断有效期为 当前时间-添加时间再与字段B比较大小

查询结果为提取前10条 十条中参加了置顶并在有效期内的显示在前面 剩下的条数显示参加了置顶但过期和没参加的

好复制!
1楼的能实现莫。比如A为10 B为1 表示在当天参加置顶在第10
但如果明天没置顶新闻即A都为0。但那天新闻A为10,按你的排序10将一直在前而不受有效期控制了哦!

数据库中应该有个字段是存发布日期的吧?比如是pubdate

select * from 表名 where
A<>0 and
DATEDIFF(day, pubdate, getdate())<=B order by A desc
union all
select * from 表名 where
A<>0 and
DATEDIFF(day, pubdate, getdate())>B order by A desc
union all
select * from 表名 where
A=0

没听明白