生川丸子汤的做法:数据库6(问题)

来源:百度文库 编辑:高考问答 时间:2024/04/28 05:01:52
写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。
偶回追分的!!!

是不是要做分页的东西呢?
我写一条语句你看看吧,这是取第31到第40条记录,是按id排序的另外,需要表A中数据多于40条否则可能不准确了,供参考:)

select *
from 表A
where id between (select max(id) from (select top 31 id from 表A order by id) a) and (select max(id) from (select top 40 id from 表A order by id) b)

也可以导出临时表,从临时表中选,比如
select identity(int,1,1) itemid,cast(id as int) id,(除ID列以外的列)
into 临时表
from 表A
--where id<200 /*可以根据情况在这里设置导入到临时表里的数据量,以节省时间*/

select *
from 临时表
where itemid between 31 and 40

drop table 临时表

由于select identity ... into 语句不能直接将原有id列导出,需要用cast(id as int)转换一下
“(除ID列以外的列)”需要根据表A中实际的列名来修改

SELECT TOP 10 * FROM [A]
WHERE [ID] > (SELECT MAX([ID]) FROM (SELECT TOP 30 [ID] FROM [A] ORDER BY [ID] ASC) tmp)
ORDER BY [ID] ASC