关于查询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是怎么确定的,麻烦高手些解决下;说的是什么参数....?????
展开
3个回答
展开全部
可用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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询