1. sql server里面查询上一条数据,sql语句怎么写(id是不连续的)求大神指教
你应该能先获得你需要去的数据的 id 的集合吧。
在程序里进行一个id的拼接,
如id的集合为 1、3、5、7、9,可以通过程序拼接成语句 select * from 表名 where id in (1,3,5,7,9) 执行就可以了
2. MS SQL SERVER的表主键id是自增量的,但是出现不连续,丢数据
有可能有删除数据的情况。
还有一种就是,如果已经做了写表的操作,事务不提交,最后记录不会提交,但ID会增长的,就会断号。
3. 请教sql 语句高手,怎么从一个表中检索出第10条到第20条记录,(注:表中的主键为ID,但ID不连续。)
select top 20 * from 表名 where 条件 and id not in(select top 10 id from 表名 where 条件)
效率低了点 但是基本算实现功能了 oracle有方法实现 sql server 这个方法比较简单
创建临时表方法 存储过程利用游标操作效率也不比这个高
4. 要查数据表中第30到40条记录,有字段ID,但是ID并不连续,如何写SQL语句
例:select * from employees e where rownum betwon 30 and 40;
解释:rownum -- 数据库会为出现在查询结果里的记录进行编号,从1开始。
-- 请打印表里的前5行记录
select * from employees where rownum<=5;
-- 请打印表里的第6到第10行记录
select * from employees where rownum between 6 and 10;
注意:对于rownum只能应用 < ,<=, >,>=, =, between XXX and XXX
5. 请教一个 sql查询 问题 :已经有ID号1、5、10(不连续),怎么用SQL查询下一个记录
select top(1) * from mytable where ID>"&ID
'不管你中间空多少 反正是查出你当前id的下一条
select top(1) * from WEBNEWS where ID<"&ID&"order by id desc"
'desc 表示降序排列,查上一条
6. 如何用sql语句删除id 号不连续的三个记录
delete
from
student
where
id
in
('1','4','6')
或者:
delete
from
student
where
id='1'
or
id='4'
or
id='6'
如果id是数字类型的就不用加单引号
7. 数据库ID怎么个连续
ID不连续是因为删除数据造成的,因为数据库内核系统分配给记录的ID是终身有效的,注销以后不收回,这样对于数据管理更好。
比如一个论坛,如果你打开帖子清单后一直没有关闭,那么这个期间别人已经删除了的帖子还在你的浏览器里面,还可以点击,但是会报告帖子找不到,已经被删除。如果ID重复使用,就可能打开新的帖子,特别是当帖子有查看权限等控制的时候,会带来更多的麻烦。