黑马程序员技术交流社区

标题: 一个面试题的疑惑 [打印本页]

作者: 孙铭泽    时间: 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)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2