人员表person(10万条记录)的结构如下:字段       类型            说明
ID     CHAR(24)   -- primary key
NAME     VARCHAR2(50)
AGE     NUMBER(3)
AREA_CODE     CHAR(3)   --所在省,此列有索引
  
 请写SQL语句:1、列出年纪在25岁以上且省份号为101的人员。2、如果业务原始SQL为 _sql_ ,补充SQL实现翻页功能。假设页码为:pageno,每页显示的记录数为 pagesize

解决方案 »

  1.   

    -- *(01)select * from person
    where age>=25 -- 在25岁以上(含25岁)
    and area_code='101';
      

  2.   

    --
    2、如果业务原始SQL为 _sql_ ,补充SQL实现翻页功能。假设页码为:pageno,每页显示的记录数为 pagesize-- 每页数据的排序依据是什么?
      

  3.   

    select b.* from 
    (select rownum rownum_,a.* from _sql_ a) b
    where b.rownum_ > (pageno-1)*pagesize 
    and   b.rownum_ <= pageno*pagesize
      

  4.   

    1.select * from person where age>=25 and area_code='101';2.问题表述不清楚…
      

  5.   

    我也不是很明白,“业务原始SQL为 _sql_” 是什么意思,题目就是这样出的,谁能揣摩出来并解释一下?
      

  6.   

    原始的SQL就把它当成一个全表查询或者一个带条件的查询,可以直接忽略,咱们要的是行数来分页而已,这里_sql_ 只是一个变量来代替一个查询。跟pageno,pagesize是变量一样。