⑴ 请教一段能同时查出上一条记录及下一条记录的sql
如果有主键自增或者按时间排序的数据库记录的话
直接根据当前的记录的主键或时间,大概可以这样写
(select * from table where id > 当前id order by id asc limit 1 ) union
(select * from table where id < 当前id order by id desc limit 1)
这样差不多能满足
⑵ sql数据库中没有上一条记录,下一条记录这个概念,这话对不对
数据库表中记录没有次序的概念,然则你应用query每次萌芽到的记录是按照必定的规律排序了的,比如可以应用first,last,next,recordcount保存query萌芽到的记录数
⑶ SQL如何获取上一条..下一条..首尾记录...
获得上一条的id
:select
max(id)as
id
from
[表]
where
id<"[你的要查的id]"
order
by
[.....]
获得下一条的id
:select
min(id)as
id
from
[表]
where
id>"[你的要查的id]"
order
by
[.....]
很笨的办法但是很直观·
不知道你是什么数据库··根据不同的数据库有很多不同的写法··
比如
mysql
中的
limit
或者
mssql
中的
top
写法多了去啦··呵呵··上面举个例子罢了··希望对你有帮助
⑷ 关于查询sql中数据上一条记录和下一条记录的sql语句......
sql中是设置的自增列啊;不需输入当前的id,这里默认的是1;要是是1的话,就只能查到第2个,但3个就不晓得了回答: 当你查到第2个的时候,就获取第二条的ID,点下一条的时候,就用第二条的id去查,后边的类推~追问: 主要就是现在的id的获取问题回答: 第一条就以0开始就行,后边就获取查出来的数据的id就行了, 你数据都查出来了,还获取不到id?追问: id = Request.QueryString["id"]; 我是用这个获取的;不知对否回答: 你能获取到值就可以了,调试一下就行了~追问: 关键就是无法获取到值..问题就出现在这里了,卡起了回答:
⑸ 关于查询sql中数据上一条记录和下一条记录的sql语句......
可用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前和后各一条数据。
withtas
(selectstudent.*,row_number()over(orderbycreate_date)rnfromstudent)
select*fromstudentwherern=(selectt.rn+1fromtwheret.name='张三')
unionall
select*fromstudentwherern=(selectt.rn-1fromtwheret.name='张三')
结果应是:
id name create_date
2 李四 2015-06-01
3 王五 2015-08-01
⑹ 在asp.net中怎样显示SQL数据库中当前条的上一条,下一条记录
比如说当前条记录是:
select * from tb where id=5
那么上一条是:
select top 1 * from tb where id<5 order by id desc
下一条记录是:
select top 1 * from tb where id>5 order by id asc
只需要改写一下您的语句即可。
当一条路走不通,可以尝试换一种思路,换一个方向思考
⑺ sql 查符合条件的记录下一条记录
什么数据库啊?
以sqlserver为例,基本使用于所有数据库
创建测试表
createtabletest
(日期varchar(10),
属性1int,
属性2int)
insertintotestvalues('2013-12-10',2,null)
insertintotestvalues('2013-12-11',3,null)
insertintotestvalues('2013-12-12',5,null)
insertintotestvalues('2013-12-13',2,null)
insertintotestvalues('2013-12-14',7,null)
insertintotestvalues('2013-12-15',3,null)
insertintotestvalues('2013-12-16',5,null)
insertintotestvalues('2013-12-17',7,null)
insertintotestvalues('2013-12-18',8,null)
执行
select日期,属性1,属性2
from
(select日期,属性1,属性2,(selectcount(1)fromtestast2wheret1.日期>t2.日期)asrnfromtestast1)ast
wherernin
(selects.rn+1from(select日期,属性1,属性2,(selectcount(1)fromtestast2wheret1.日期>t2.日期)asrnfromtestast1)asswhere属性1=2)
结果