关于查询sql中数据上一条记录和下一条记录的sql语句......

stringpreSql="selecttop1*fromnewswherenews_id<"+id+"orderbynews_idDESC"stringnextSql=... string preSql = "select top 1 * from news where news_id < " + id + " order by news_id DESC" string nextSql = "select top 1 * from news where news_id > " + id + " order by news_id ASC" 这是表示查询下一条和上一条 sql记录的语句,那里面的id是怎么确定的,麻烦高手些解决下;说的是什么参数....????? 展开
 我来答
badkano
推荐于2017-11-28 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部

可用row_number来解决。

如student表

id        name     create_date

1         张三        2015-07-01

2         李四        2015-06-01

3         王五        2015-08-01

4         赵六        2015-04-01


如,要查找张三的create_date前和后各一条数据。

with t as
(select student.*,row_number() over(order by create_date) rn from student)
select * from student where rn=(select t.rn+1 from t where t.name='张三')
union all
select * from student where rn=(select t.rn-1 from t where t.name='张三')

结果应是:

id        name     create_date

2         李四        2015-06-01

3         王五        2015-08-01

匿名用户
2013-07-08
展开全部
news_id必须是整形,一般来说,这里应该是自增列,通过输入当前的ID,查询比它大的第一条记录,来达到查询下一条的目的,实现方法比较简单和巧妙。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-08
展开全部
news_id 自增类型,或者有一定规律的数值类型,外面程序获取的id这个就看你怎么存放了,一般是放在url的参数里,比如 http://www.baidu.com/news.html?id=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式