标题: 一个面试题的疑惑 [打印本页] 作者: 孙铭泽 时间: 2012-8-23 22:31 标题: 一个面试题的疑惑 4. 写出一条 Sql 语句: 取出表 A 中第 31 到第 40 记录(SQLServer, 以自动增长的 ID 作为 主键, 注意:ID 可能不是连续的. )
我的理解:
【select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)】作者: 黑马王建伟 时间: 2012-8-23 22:50
我现在没有sqlserver环境,所以没运行,我写了两个分页语句,楼主看下,
分页一:select top 10 * from student where id not in(select top 30 id from student);
分页二select top 10 * from (select row_number() over(order by id)as rownumber,* from student)a where rownumber>30
其实还有一种分页,但我不常用,就不写了,如有错误,敬请原谅作者: 冯雅伦 时间: 2012-8-24 09:52
select *from(select row_num()over(order by id)rownum from A)t where t.rownum>=31 and t.rownum<=40
这个思路,不知道对不对作者: 董蒙蒙 时间: 2012-8-24 10:01
楼主的那种写法也对,也可以这样:
select top 10 * from A where id not in (select top 30 id from A)