高手们。。。 (1)你的表中如果有排序字段,可以先正序取前30条,然后反序取前11条。收养。 drop table ##data select top 30 * into ##data from 表名 order by 列名 select top 11 * from ##data order by 列名 desc (2)你的表中如果没有排序字段,你还不想排序以免打乱原有行的顺序,这种情况比较少见,法制进行时。我也可以给你一个方法, drop table ##data1 drop table ##data2 select top 30 * into ##data1 from 表名 select top 19 * into ##data2 from 表名 select * from ##data1 as a where not exists(select * from ##data2 as b where a.列名=b.列名 ) 两种方法选的列最好是主键,或是唯一值。 你有用两次查询不就行了 select top 20 * from (select top 30 * from 表 order by column1) order by column1 desc 数据库里面的记录是没有什么顺序可言的,只有经过一定方法的排序之后才可以有顺序,所以不存在表中第几行数据这个说法。所以如果以一个字段为排序方式的话,可以用如下方法: SELECT TOP 10 * FROM 表 WHERE (NOT (排序字段 IN (SELECT TOP 10 排序字段 FROM 表))) 当然也可以加上order by 调整记录顺序 (责任编辑:admin) |