求一句简单的sql语句。(asp+access)
我用的是asp+access。例如:已知:infor表中共有300条记录。i_id是自动编号的主键。怎样输出比如第168条记录?我首先想到的是用select*fromin...
我用的是asp+access。
例如:已知:infor 表中共有300条记录。i_id 是自动编号的主键。
怎样输出比如第168条记录?
我首先想到的是用 select * from infor where i_id=168
但是,问题就出在,由于前面曾经对该数据库中的数据进行了删除操作,主键i_id=168 并不是第168条记录。那么我如何才能输出数据库中的第168条记录呢?
本人菜鸟,麻烦请写出这句代码并详细解释一下。
十分感谢哈!!!
一楼和三楼的方法不错,二楼的没明白我的意思。想再深入一下,那么怎么样才能得到 第168条到第178条,同10条的记录集呢???? 加20分相赠。谢谢了!!! 展开
例如:已知:infor 表中共有300条记录。i_id 是自动编号的主键。
怎样输出比如第168条记录?
我首先想到的是用 select * from infor where i_id=168
但是,问题就出在,由于前面曾经对该数据库中的数据进行了删除操作,主键i_id=168 并不是第168条记录。那么我如何才能输出数据库中的第168条记录呢?
本人菜鸟,麻烦请写出这句代码并详细解释一下。
十分感谢哈!!!
一楼和三楼的方法不错,二楼的没明白我的意思。想再深入一下,那么怎么样才能得到 第168条到第178条,同10条的记录集呢???? 加20分相赠。谢谢了!!! 展开
展开全部
select top 1 * from
(select top 168 * from infor order by i_id) tb
order by i_id desc
(select top 168 * from infor order by i_id) tb
这行的意思是从原表按顺序取出168条数据放在一个虚拟表中,取个别名为tb
select top 1 * from 这句加上后面的
order by i_id desc
意思是从上面取出的168条记录中取出最后一条记录。
=================取出第168条到第178条的记录方法如下=================
第168条到第178条是11个记录
SELECT TOP 11 * FROM infor AS a WHERE Not Exists
(Select * From (Select Top 167 * From infor order by id) b Where b.id=a.id )
Order by id
解释如下:
SELECT TOP 11 * FROM infor AS a
从表infor中取出11条记录,并为表infor建立别名a
WHERE Not Exists
为上面取11条记录设个前提条件
(Select * From (Select Top 167 * From infor order by id) b Where b.id=a.id )
Order by id
条件为前面的167条记录不要。
(select top 168 * from infor order by i_id) tb
order by i_id desc
(select top 168 * from infor order by i_id) tb
这行的意思是从原表按顺序取出168条数据放在一个虚拟表中,取个别名为tb
select top 1 * from 这句加上后面的
order by i_id desc
意思是从上面取出的168条记录中取出最后一条记录。
=================取出第168条到第178条的记录方法如下=================
第168条到第178条是11个记录
SELECT TOP 11 * FROM infor AS a WHERE Not Exists
(Select * From (Select Top 167 * From infor order by id) b Where b.id=a.id )
Order by id
解释如下:
SELECT TOP 11 * FROM infor AS a
从表infor中取出11条记录,并为表infor建立别名a
WHERE Not Exists
为上面取11条记录设个前提条件
(Select * From (Select Top 167 * From infor order by id) b Where b.id=a.id )
Order by id
条件为前面的167条记录不要。
展开全部
呵呵,,就算你曾经在前面对数据进行了删除,
原本在168条的这行数据也是不户变的..
你写的select * from infor where i_id=168
是对的....
打个比方,
这个表
id | title
1 | 测试
2 | 测试1
3 | 测试2
现在ID是自增列..
现在我把id为2的字段删掉,就成了
id | title
1 | 测试
3 | 测试2
对于id为1和id为3的字段是没有任何影响的..
原本在168条的这行数据也是不户变的..
你写的select * from infor where i_id=168
是对的....
打个比方,
这个表
id | title
1 | 测试
2 | 测试1
3 | 测试2
现在ID是自增列..
现在我把id为2的字段删掉,就成了
id | title
1 | 测试
3 | 测试2
对于id为1和id为3的字段是没有任何影响的..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得最好的办法是 把查出来的数据填充进一个临时表中 这样直接查询 临时表中的id=168就可以了
select * into tempTB from infor
select * from tempTB where i_id between 168 and 178
这样插入的新表标识列是会带过来的而且会重新编排 这种方法应该是最简单的了
select * into tempTB from infor
select * from tempTB where i_id between 168 and 178
这样插入的新表标识列是会带过来的而且会重新编排 这种方法应该是最简单的了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试一下这个
select top 1 * from (select top 168 * from info order by i_id) order by i_id desc
select top 1 * from (select top 168 * from info order by i_id) order by i_id desc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select top 10 * from (select top 178 * from info order by i_id) order by i_id desc;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正数168还是倒数168
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询